excel - VBA 公式应用程序/对象定义错误
问题描述
我知道那里有无数这样的问题;但是我已经尝试从我见过的各种东西中实现一些东西,但还没有找到正确的结构。我不断收到应用程序/对象定义的错误。我确定是引号,但我似乎无法弄清楚我在哪里有太多与不够。最终目标是让这个公式出现在一定范围的行(newrows 变量)之后,并在它填满每一行之后动态更新。
我尝试删除字符串部分周围的额外引号,但它在代码开头附近给了我一个“预期:语句结束”错误。当我在记事本 ++ 中查看它时,它看起来是正确的,但在 excel 中运行宏时仍然会在 VBA 本身中出现错误。
Range("R" & newrows & ":R1000").Formula = "=iferror(IF(""E""" & newrows & "= ""Planning"",VLOOKUP(""D""" & newrows & ",DataCheck4!A:F,3,FALSE),IF(""E""" & newrows & "=""Fieldwork"",VLOOKUP(""D""" & newrows & ",DataCheck4!A:F,4,FALSE),IF(""E""" & newrows & "=""Reporting"",VLOOKUP(""D""" & newrows & ",DataCheck4!A:F,5,FALSE),IF(""E""" & newrows & "=""Wrap Up"",VLOOKUP(""D""" & newrows & ",DataCheck4!A:F,6,FALSE),IF(""E""" & newrows & "=""Proj. Mgmt"",VLOOKUP(""D""" & newrows & ",DataCheck4!A:F,6,FALSE),"""")))))"
该代码应该根据行中单元格的值(E 列)和项目名称(D 列)来查找值。newrows 是由动态列表生成的数值变量。工作表的顶部有我不想覆盖的现有任务,但我希望该公式在该列表最后一行之后的所有单元格中。我一直在学习 VBA,因为我一直在从事这个项目,所以这可能是我还没有遇到过的东西,所以我很感激帮助!
ETA:今天早上,我尝试将带有 newrows 的序列转换为带有列字母的变量,并得到相同的应用程序定义错误。
firstloc = "E" & newrows
secondloc = "D" & newrows
Range("R" & newrows & ":R1000").Formula = "=iferror(IF(" & firstloc & "= ""Planning"",VLOOKUP(" & secondloc & ",DataCheck4!A:F,3,FALSE),IF(" & firstloc & "=""Fieldwork"",VLOOKUP(" & secondloc & ",DataCheck4!A:F,4,FALSE),IF(" & firstloc & "=""Reporting"",VLOOKUP(" & secondloc & ",DataCheck4!A:F,5,FALSE),IF(" & firstloc & "=""Wrap Up"",VLOOKUP(" & secondloc & ",DataCheck4!A:F,6,FALSE),IF(" & firstloc & "=""Proj. Mgmt"",VLOOKUP(" & secondloc & ",DataCheck4!A:F,6,FALSE),"""")))))"
解决方案
蛇配方
如果D和E是列字母,则
Sub SnakeFormula()
Range("R" & newrows & ":R1000").Formula = "=iferror(IF(E" & newrows _
& "=""Planning"",VLOOKUP(D" & newrows _
& ",DataCheck4!A:F,3,FALSE),IF(E" & newrows _
& "=""Fieldwork"",VLOOKUP(D" & newrows _
& ",DataCheck4!A:F,4,FALSE),IF(E" & newrows _
& "=""Reporting"",VLOOKUP(D" & newrows _
& ",DataCheck4!A:F,5,FALSE),IF(E" & newrows _
& "=""Wrap Up"",VLOOKUP(D" & newrows _
& ",DataCheck4!A:F,6,FALSE),IF(E" & newrows _
& "=""Proj. Mgmt"",VLOOKUP(D" & newrows _
& ",DataCheck4!A:F,6,FALSE),""""))))))"
End Sub
推荐阅读
- .net - 在 .net 后端使用苹果 JS 登录验证 AuthToken
- ios - ios,tableView.setEditing 设置默认选择行
- python - 即使代码正常工作,python函数也返回None
- javascript - 从 ng-bootstrap 表中删除行
- batch-file - 我的批处理脚本在代码之后停止执行。命令
- python - 在 Python 中用对应的行值填充 NaN
- python - MongoDB如何获得评论+回复的数量
- python - 尝试创建自定义用户表单时在确认密码上出现 FieldError
- node.js - 图像文件的 AJAX 发布请求在 Express Route 处返回空
- node.js - 无法运行:npm start on react