繁体   English   中英

无法在VBA宏中获取制表符值(名称)

[英]Can't get the tabs value (name) in VBA macro

我被困在这里。 下面是我的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)"

你近了 您只需要将Address External参数设置为True即可
就像是:

myResults.Address(External:=True)

除非将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属性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM