2014-09-26 74 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