请参阅根据VBA中的数据而变化的查找表
我正在创建一个工具,它可以在现有数据的末尾自动插入一个执行vlookup的日期列。 然而,查找表每周都可能更改,因此,我需要在工具中编写代码,以便能够计算出查找表的大小,并在公式中引用它 下面是当前代码请参阅根据VBA中的数据而变化的查找表,vba,excel,vlookup,Vba,Excel,Vlookup,我正在创建一个工具,它可以在现有数据的末尾自动插入一个执行vlookup的日期列。 然而,查找表每周都可能更改,因此,我需要在工具中编写代码,以便能够计算出查找表的大小,并在公式中引用它 下面是当前代码 Sub Macro1() 'Find how many rows and columns in each sheet Set POCell1 = Sheets("PO").Range("A1") Set toolCell1 = Sheets("tool").Range("A1") PORo
Sub Macro1()
'Find how many rows and columns in each sheet
Set POCell1 = Sheets("PO").Range("A1")
Set toolCell1 = Sheets("tool").Range("A1")
PORowEndCell = Sheets("PO").Range(POCell1, POCell1.End(xlToRight)).Columns.Count
POColmEndCell = Sheets("PO").Range(POCell1, POCell1.End(xlDown)).Rows.Count
toolRowEndCell = Sheets("tool").Range(toolCell1, ZSCell1.End(xlToRight)).Columns.Count
toolColmEndCell = Sheets("tool").Range(toolCell1, ZSCell1.End(xlDown)).Rows.Count
'insert Title
Sheets("PO").Cells(1, PORowEndCell + 1).Value = "New Promised Date"
'Do Vlookup
For i = 1 To (POColmEndCell - 1)
Sheets("PO").Cells(i + 1, PORowEndCell + 1).Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(IF('PO'!RC4=VLOOKUP(RC3,'tool'!R2C3:R144C14,2,FALSE),VLOOKUP(RC3,'tool'!R2C3:R144C14,11,FALSE),""""),"""")"
Next i
End Sub
其中,公式当前读数为R144C14,144由toolColmEndCell计算,14由toolRowEndCell计算。如何让vlookup引用这些计算出的变量作为范围的最终目的地?您使用
&
连接字符串,所以您可以这样做
ActiveCell.FormulaR1C1 = _
"=IFERROR(IF('PO'!RC4=VLOOKUP(RC3,'tool'!R2C3:R" & toolColmEndCell & "C" & toolRowEndCell & ",2,FALSE),VLOOKUP(RC3,'tool'!R2C3:R" & toolColmEndCell & "C" & toolRowEndCell & ",11,FALSE),""""),"""")"
如果只需要值,不需要在单元格中保存公式,可以考虑使用<代码>应用程序。