无法在VBA宏中获取选项卡值(名称)

时间:2014-09-26 03:30:36

标签: excel vba excel-vba

我被困在这里。下面是我的vba宏。我想查找其他标签,但结果只给我 =VLOOKUP(BE2, $BQ$2:$BQ$6, 1, 0)
但不是标签名称..为什么?如何获取工作表名称?

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)"

2 个答案:

答案 0 :(得分:1)

你很亲密。您只需将 Address External 参数设置为 True 类似的东西:

myResults.Address(External:=True)

答案 1 :(得分:0)

.Address属性仅返回行和列引用,除非您将External参数设置为True。见下文:

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

如果您不想在引用中使用工作簿名称,则可以使用.Worksheet.Name对象的Range属性构建引用。见下文:

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

有关详细信息,请参阅MSDN上的Range.Address Property