返回列表 上一主題 發帖

"Vlookup" and "Match" in VBA

"Vlookup" and "Match" in VBA

我平常都會用很多"Vlookup" 跟 "Match",如果我想用VBA的方式寫出來,該怎麼做呢?
50 字節以內
不支持自定義 Discuz! 代碼

謝謝回覆,可惜我權限不夠,不能下載,可以簡單的介紹一下嗎?
50 字節以內
不支持自定義 Discuz! 代碼

TOP

謝謝,我試了...
x = Range("D" & z).Application.Formula = " [=MATCH(Sheets1!""ItemName"",Sheets2!A:A,0)]"
就是不行,可以告訴我,我錯在哪裡嗎?
謝謝~~!
50 字節以內
不支持自定義 Discuz! 代碼

TOP

本帖最後由 am0251 於 2011-6-22 17:13 編輯

很奇怪,我試過:
ItemNam = Range("A" & z).Value
x = Application.WorksheetFunction.Match(""ItemNam"",, Sheets("OUT").Range("A:A"))
是不行的,只有不用變數"ItemNam"而直接把"Range("A" & z).Value"打進去才能用 Book1.rar (12.98 KB)
50 字節以內
不支持自定義 Discuz! 代碼

TOP

謝謝指教~~!!感覺功力提昇了不小!!
50 字節以內
不支持自定義 Discuz! 代碼

TOP

本帖最後由 am0251 於 2011-6-23 15:03 編輯

如果我想把變數"y"的值等於,我的UserFrom 內的 Calendar 的值,可是我寫了"y = Calendar1.Value"出來的結果是"1/六月/2011 ",我的屬性已經改"英文(簡短)"的了,要在哪裡可以改成"1-Jun-11"呢?
因為我要把"x" "y"變成Cells(x,y)的痤標,"x"就是ItemName,"y"就是日期,如B2="1-Jun-11"; C2="2-Jun-11"............有可能做的到嗎?
50 字節以內
不支持自定義 Discuz! 代碼

TOP

不好意思......我又失敗了...... Book1.rar (22.21 KB)
50 字節以內
不支持自定義 Discuz! 代碼

TOP

本帖最後由 am0251 於 2011-6-24 15:36 編輯

謝謝指點,已改好了,可是.......還是不行......... Book1.rar (23.12 KB)

Book1.rar (23.12 KB)

50 字節以內
不支持自定義 Discuz! 代碼

TOP

本帖最後由 am0251 於 2011-6-25 14:39 編輯

不好意思,小的沒看懂....這是我的程序
  1. Private Sub Start_Click()

  2. Dim x As Integer, y As Integer, z As Integer, S1 As Integer, S2 As Integer, myRowCount As Integer
  3. Dim ShipDate As Date
  4. Dim ItemName As String

  5. z = 2

  6. myRowCount = Range("A1").CurrentRegion.Rows.Count

  7. ItemName = Worksheets("Sheet1").Range("A" & z).Value

  8. ShipDate = Format(Calendar1.Value, "d-mmm-yy")

  9. For i = 2 To myRowCount

  10. x = Application.Match(ItemName, Sheet2.["A1", "A" & myRowCount], 0)
  11. y = Application.Match(ShipDate, Sheet2.[B1:AF1], 0)


  12. S1 = Workbooks("Book1").Worksheets("Sheet1").Cells(z, 2).Value
  13. S2 = Workbooks("Book1").Worksheets("Sheet2").Cells(x, y).Value

  14. S2 = S2 + S1

  15. z = z + 1

  16. Next i

  17. Unload Me

  18. MsgBox "Done"

  19. End Sub
複製代碼
50 字節以內
不支持自定義 Discuz! 代碼

TOP

本帖最後由 am0251 於 2011-6-27 18:14 編輯

謝謝Hsieh大大的出手相助......可是還是不行.........,可以再告訴我,我又錯在哪裡呢?萬二分感謝!
  1. Private Sub Start_Click()

  2. Dim x As Integer, y As Integer, z As Integer, S1 As Integer, S2 As Integer, myRowCount As Integer
  3. Dim ShipDate As Double
  4. Dim ItemName As String

  5. z = 2

  6. myRowCount = Range("A1").CurrentRegion.Rows.Count

  7. ShipDate = Format(Calendar1.Value, "d-mmm-yy")

  8. For i = 2 To myRowCount

  9. ItemName = Worksheets("Sheet1").Range("A" & z).Value

  10. x = Application.Match(ItemName, Sheet2.Range("A1:A" & myRowCount), 0)
  11. y = Application.Match(ShipDate, Sheet2.[B1:AF1], 0)

  12. S1 = Workbooks("Book1").Worksheets("Sheet2").Cells(x, y).Value
  13. S2 = Workbooks("Book1").Worksheets("Sheet1").Cells(z, 2).Value

  14. S1 = S1 + S2

  15. z = z + 1

  16. Next i

  17. Unload Me

  18. MsgBox "Done"

  19. End Sub
複製代碼
50 字節以內
不支持自定義 Discuz! 代碼

TOP

        靜思自在 : 生氣,就是拿別人的過錯來懲罰自己。
返回列表 上一主題