返回列表 上一主題 發帖

[發問] VBA讓用戶選擇vlookup的文件名,資料範圍欄數

回復 1# boomf2

功力沒很好,試試看!!
Sub ex()
Application.ScreenUpdating = False
Source1 = Application.GetOpenFilename
x = InputBox("查詢位置")
Workbooks.Open Source1
Windows("Workbook2.xlsm").Activate
r = [a65535].End(3).Row
[N2].Resize(r - 1) = "=VLOOKUP(A2,[" & Dir(Source1) & "]Sheet1!A:F," & x & ",FALSE)"
[M2].Resize(r - 1) = "=VLOOKUP(A2,[" & Dir(Source1) & "]Sheet1!A:F," & x + 1 & ",FALSE)"
[L2].Resize(r - 1) = "=VLOOKUP(A2,[" & Dir(Source1) & "]Sheet1!A:F," & x + 2 & ",FALSE)"
Workbooks(Dir(Source1)).Close False
Application.ScreenUpdating = True
End Sub

我是用M2 & L2,如果要改為M3 & L3,請將M2 & L2改成M3 & L3即可
而空格M3等於N2回傳資料範圍欄數+1  => VLOOKUP($A:$A,[Database.xlsx]Sheet1!$A:$F,3,0) 來回傳值.
而空格L3等於N2回傳資料範圍欄數+2  => VLOOKUP($A:$A,[Database.xlsx]Sheet1!$A:$F,4,0) 來回傳值.

TOP

回復 3# boomf2

調整一下
Sub ex()
Application.ScreenUpdating = False
Source1 = Application.GetOpenFilename
x = InputBox("查詢位置")
r = [a65535].End(3).Row
[N2].Resize(r - 1) = "=VLOOKUP(A2,[" & Dir(Source1) & "]Sheet1!A:F," & x & ",FALSE)"
[M2].Resize(r - 1) = "=VLOOKUP(A2,[" & Dir(Source1) & "]Sheet1!A:F," & x + 1 & ",FALSE)"
[L2].Resize(r - 1) = "=VLOOKUP(A2,[" & Dir(Source1) & "]Sheet1!A:F," & x + 2 & ",FALSE)"
Application.ScreenUpdating = True
End Sub

End(3):end属性,3表示XLUP

TOP

        靜思自在 : 脾氣嘴巴不好,心地再好也不能算是好人。
返回列表 上一主題