公式中的动态列索引名称错误
Dynamic Column Index Name Error in Formula
我正在尝试通过使用 Vlookup 填充列来计算从 Sheet 计划到 Sheet 结果的组件数量,具有:
Count_col
:是sheet中的总列 Plan
Last_col
:是sheet中的总列 Result
(添加列Demand之前)
Sheet 结果
Material
组件
需求 W1
需求 W2
ABCD1000
nc200
#NAME?
#NAME?
Sheet 计划
Material
需求 W1
需求 W2
ABCD1000
1000
200
For i = 1 To count_col
Cells(1, i + last_col).Value = "=Plan!RC[-2]"
Cells(1, i + last_col).Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,Plan!C1:C15,i+1,0)"
Next i
但结果是名字错误,我检查了函数的拼写是否正确,不知道如何修复。为什么我的公式中有“@”?
错误详情
=VLOOKUP($A2,Plan!$A:$O,@i+1,0)
i+1
inside ""
表现得像一个字符串而不是一个变量。试试这个。
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,Plan!C1:C15," & i + 1 & ",0)"
同时避免使用.Select
。你的代码可以写成
Cells(1, i + last_col).Offset(1, 0).FormulaR1C1 = _
"=VLOOKUP(RC1,Plan!C1:C15," & i + 1 & ",0)"
推荐阅读:How to avoid using Select in Excel VBA
您还混合了 R1C1
和 A1
引用风格。我建议使用其中之一。一个简单的 Google 搜索 R1C1 vs A1 style
将解释它们是什么。
在R1C1
中,Plan!C1:C15
需要写成Plan!R1C3:R15C3
。所以你的最终代码是
Cells(1, i + last_col).Offset(1, 0).FormulaR1C1 = _
"=VLOOKUP(RC1,Plan!R1C3:R15C3," & i + 1 & ",0)"
我正在尝试通过使用 Vlookup 填充列来计算从 Sheet 计划到 Sheet 结果的组件数量,具有:
Count_col
:是sheet中的总列Plan
Last_col
:是sheet中的总列Result
(添加列Demand之前)
Sheet 结果
Material | 组件 | 需求 W1 | 需求 W2 |
---|---|---|---|
ABCD1000 | nc200 | #NAME? | #NAME? |
Sheet 计划
Material | 需求 W1 | 需求 W2 |
---|---|---|
ABCD1000 | 1000 | 200 |
For i = 1 To count_col
Cells(1, i + last_col).Value = "=Plan!RC[-2]"
Cells(1, i + last_col).Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,Plan!C1:C15,i+1,0)"
Next i
但结果是名字错误,我检查了函数的拼写是否正确,不知道如何修复。为什么我的公式中有“@”?
错误详情
=VLOOKUP($A2,Plan!$A:$O,@i+1,0)
i+1
inside ""
表现得像一个字符串而不是一个变量。试试这个。
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,Plan!C1:C15," & i + 1 & ",0)"
同时避免使用.Select
。你的代码可以写成
Cells(1, i + last_col).Offset(1, 0).FormulaR1C1 = _
"=VLOOKUP(RC1,Plan!C1:C15," & i + 1 & ",0)"
推荐阅读:How to avoid using Select in Excel VBA
您还混合了 R1C1
和 A1
引用风格。我建议使用其中之一。一个简单的 Google 搜索 R1C1 vs A1 style
将解释它们是什么。
在R1C1
中,Plan!C1:C15
需要写成Plan!R1C3:R15C3
。所以你的最终代码是
Cells(1, i + last_col).Offset(1, 0).FormulaR1C1 = _
"=VLOOKUP(RC1,Plan!R1C3:R15C3," & i + 1 & ",0)"