0

我正在创建一个工具,它会在现有数据的末尾自动插入一个执行 vlookup 的日期列。然而,查找表可以每周更改,因此,我需要在工具中编写代码,以便能够计算出查找表的大小并在公式中引用它。

当前代码如下。

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 将这些计算变量作为范围的最终目的地?

4

1 回答 1

0

&用来连接字符串,所以你做这样的事情

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

如果您只需要值并且不需要将公式保留在单元格中,您可以考虑使用Application.Vlookup

于 2013-10-23T12:43:44.353 回答