"Vlookup" and "Match" in VBA
- 帖子
- 65
- 主題
- 11
- 精華
- 0
- 積分
- 83
- 點名
- 0
- 作業系統
- Window 7
- 軟體版本
- 2007
- 閱讀權限
- 20
- 註冊時間
- 2010-5-4
- 最後登錄
- 2012-5-21
|
"Vlookup" and "Match" in VBA
我平常都會用很多"Vlookup" 跟 "Match",如果我想用VBA的方式寫出來,該怎麼做呢? |
|
50 字節以內
不支持自定義 Discuz! 代碼
|
|
|
|
|
- 帖子
- 1572
- 主題
- 16
- 精華
- 2
- 積分
- 1521
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 150
- 性別
- 男
- 註冊時間
- 2010-5-1
- 最後登錄
- 2016-1-13

|
2#
發表於 2011-6-21 17:06
| 只看該作者
|
|
|
|
|
|
- 帖子
- 65
- 主題
- 11
- 精華
- 0
- 積分
- 83
- 點名
- 0
- 作業系統
- Window 7
- 軟體版本
- 2007
- 閱讀權限
- 20
- 註冊時間
- 2010-5-4
- 最後登錄
- 2012-5-21
|
3#
發表於 2011-6-22 13:31
| 只看該作者
謝謝回覆,可惜我權限不夠,不能下載,可以簡單的介紹一下嗎? |
|
50 字節以內
不支持自定義 Discuz! 代碼
|
|
|
|
|
- 帖子
- 1572
- 主題
- 16
- 精華
- 2
- 積分
- 1521
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 150
- 性別
- 男
- 註冊時間
- 2010-5-1
- 最後登錄
- 2016-1-13

|
4#
發表於 2011-6-22 13:38
| 只看該作者
方法1:用application.引用公式
方法2.用evaluate+公式
方法3.用中刮號把公式框起來 |
|
|
|
|
|
|
- 帖子
- 65
- 主題
- 11
- 精華
- 0
- 積分
- 83
- 點名
- 0
- 作業系統
- Window 7
- 軟體版本
- 2007
- 閱讀權限
- 20
- 註冊時間
- 2010-5-4
- 最後登錄
- 2012-5-21
|
5#
發表於 2011-6-22 14:12
| 只看該作者
謝謝,我試了...
x = Range("D" & z).Application.Formula = " [=MATCH(Sheets1!""ItemName"",Sheets2!A:A,0)]"
就是不行,可以告訴我,我錯在哪裡嗎?
謝謝~~! |
|
50 字節以內
不支持自定義 Discuz! 代碼
|
|
|
|
|
- 帖子
- 1572
- 主題
- 16
- 精華
- 2
- 積分
- 1521
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 150
- 性別
- 男
- 註冊時間
- 2010-5-1
- 最後登錄
- 2016-1-13

|
6#
發表於 2011-6-22 15:15
| 只看該作者
Range("d" & z) = Evaluate("MATCH(""ItemNam"",Sheet2!A:A,0)") |
|
|
|
|
|
|
- 帖子
- 1572
- 主題
- 16
- 精華
- 2
- 積分
- 1521
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 150
- 性別
- 男
- 註冊時間
- 2010-5-1
- 最後登錄
- 2016-1-13

|
7#
發表於 2011-6-22 15:20
| 只看該作者
上述列出的方法你只能選一樣
不能每樣同時用,還加上錄製的代碼
前面"x="也不能加在裡面,哪能這麼多等號? |
|
|
|
|
|
|
- 帖子
- 65
- 主題
- 11
- 精華
- 0
- 積分
- 83
- 點名
- 0
- 作業系統
- Window 7
- 軟體版本
- 2007
- 閱讀權限
- 20
- 註冊時間
- 2010-5-4
- 最後登錄
- 2012-5-21
|
8#
發表於 2011-6-22 16:36
| 只看該作者
本帖最後由 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! 代碼
|
|
|
|
|
- 帖子
- 1572
- 主題
- 16
- 精華
- 2
- 積分
- 1521
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 150
- 性別
- 男
- 註冊時間
- 2010-5-1
- 最後登錄
- 2016-1-13

|
9#
發表於 2011-6-22 17:14
| 只看該作者
變數有變數的用法,跟字符是不同的表示。
變數不用雙引號。 |
|
|
|
|
|
|
- 帖子
- 1572
- 主題
- 16
- 精華
- 2
- 積分
- 1521
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2003
- 閱讀權限
- 150
- 性別
- 男
- 註冊時間
- 2010-5-1
- 最後登錄
- 2016-1-13

|
10#
發表於 2011-6-22 21:31
| 只看該作者
嗯,上傳檔案就好辦了!
改這樣- Sub test()
- Dim x As Integer
- Dim y As Integer
- Dim z As Integer
- Dim ItemName As String
- z = 2
- Do While Range("A" & z).Value <> ""
- ItemNam = Worksheets("Sheet1").Range("A" & z).Value
- x = Application.Match(ItemNam, Sheet2.[A1:A100], 0)
- Debug.Print x
- z = z + 1
- Loop
- End Sub
複製代碼 |
|
|
|
|
|
|