微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

公式中的动态列索引名称错误

如何解决公式中的动态列索引名称错误

我正在尝试通过使用 Vlookup 填充列来计算从图纸计划到图纸结果的组件数量,具有:

  • Count_col:是表Plan中的总列
  • Last_col:是表Result中的总列(在添加列需求之前)

工作表结果

材质 组件 需求W1 需求W2
ABCD1000 nc200 #NAME? #NAME?

图纸计划

材质 需求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 中的

"" 表现得像一个字符串而不是一个变量。试试这个。

ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,Plan!C1:C15," & i + 1 & ",0)"

还要避免使用 .Select。你的代码可以写成

Cells(1,i + last_col).Offset(1,0).FormulaR1C1 = _
"=VLOOKUP(RC1,0)"

推荐阅读:How to avoid using Select in Excel VBA

您还混合了 R1C1A1 样式的引用。我建议使用其中之一。一个简单的 Google 搜索 R1C1 vs A1 style 将解释它们是什么。

R1C1中,Plan!C1:C15需要写成Plan!R1C3:R15C3。所以你的最终代码是

Cells(1,Plan!R1C3:R15C3,0)"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?