2014-09-26 23 views
1

我卡在這裏。下面是我的vba宏。我想查找其他選項卡,但結果只給我
=VLOOKUP(BE2, $BQ$2:$BQ$6, 1, 0)
但不是標籤名稱..爲什麼?我如何獲取表單名稱?無法獲取VBA宏中的選項卡值(名稱)

Set myValues = Application.InputBox("Please select a:", Type:=8) 
Set myResults = Application.InputBox("Please select a next sheet:", Type:=8) 

On Error Resume Next 
Set myValues = myValues.Offset 
FirstRow = myValues.Row 
FinalRow = Cells(65536, myResults.Column).End(xlUp).Row 

Range("BF2").Formula = _ 
"=VLOOKUP(" & Cells(FirstRow, myValues.Column).Address(False, False) & ", " & _ 
" " & myResults.Address & " , 1, 0)" 

回答

1

你很近。您只需將地址外部參數設置爲真實
喜歡的東西:

myResults.Address(External:=True) 
+0

非常感謝。 – 2014-09-26 05:26:05

0

,除非你External參數設置爲True.Address屬性只返回的行和列的參考。請看下圖:

Range("BF2").Formula = _ 
"=VLOOKUP(" & Cells(FirstRow, myValues.Column).Address(False, False) & ", " & _ 
" " & myResults.Address(External:=True) & " , 1, 0)" 

如果沒有在參考想要的工作簿的名稱,你可以使用Range對象的.Worksheet.Name財產建立參考。如下所示:

Range("BF2").Formula = _ 
"=VLOOKUP(" & Cells(FirstRow, myValues.Column).Address(False, False) & ", " & _ 
" " & myResults.Worksheet.Name & "!" & myResults.Address & " , 1, 0)" 

請參閱MSDN上的Range.Address Property瞭解更多信息。

+0

謝謝史蒂夫。它運作良好..讚賞你的幫助。 – 2014-09-26 05:25:16