如何更改以下查找以引用工作簿中的第一个工作表而不是“工作表1”?
.Range("I15:I" & lastRow).FormulaR1C1 = _
"=IF(VLOOKUP(RC[-8],[" & combinedWorkbook.Name & "]Sheet1!C1:C2,1,TRUE)=RC[-8],VLOOKUP(RC[-8],[" & combinedWorkbook.Name & "]Sheet1!C1:C2,2,TRUE),NA())"
由于
答案 0 :(得分:1)
如果您要重复使用它,我会声明:
Dim first_sheet As String
first_sheet = combinedWorkbook.Sheets(1).Name
然后在你的代码中使用它:
.Range("I15:I" & lastRow).FormulaR1C1 = _
"=IF(VLOOKUP(RC[-8],[" & combinedWorkbook.Name & "] & first_sheet & !C1:C2,1,TRUE)=RC[-8],VLOOKUP(RC[-8],[" & combinedWorkbook.Name & "] & first_sheet & !C1:C2,2,TRUE),NA())"
答案 1 :(得分:1)
您已将工作簿名称连接到公式中。您也可以将第一个工作表的名称连接起来。第一个工作表是工作簿Worksheets
集合中的第一个工作表。
因此combinedWorkbook.Worksheets(1).Name
将是工作簿combinedWorkbook
中第一个工作表的名称。
但名称可能包含"我的工作表名称"等空格。然后引用本身必须在'My Worksheet Name'!A1
之类的单引号内。
所有在一起:
.Range("I15:I" & lastRow).FormulaR1C1 = _
"=IF(VLOOKUP(RC[-8],'[" & combinedWorkbook.Name & "]" & combinedWorkbook.Worksheets(1).Name & "'!C1:C2,1,TRUE)=RC[-8],VLOOKUP(RC[-8],'[" & combinedWorkbook.Name & "]" & combinedWorkbook.Worksheets(1).Name & "'!C1:C2,2,TRUE),NA())"
答案 2 :(得分:0)
这是一个如何引用第一个工作表的小例子。
使用.Name
属性获取第一个工作表的名称并将其另存为变量。
在公式中连接变量:
Public Sub TestMe()
Dim wks1 As String
wks1 = Worksheets(1).Name
'worksheets should not contains spaces! :) left and right
Worksheets(1).Name = Trim(wks1)
Range("I15:I20").FormulaR1C1 = "=" & wks1 & "!R1C1"
End Sub