【问题标题】:Invalid procedure call or argument applying Excel conditional formatting from Access vba从 Access vba 应用 Excel 条件格式的无效过程调用或参数
【发布时间】:2016-02-22 19:30:28
【问题描述】:

我已经阅读了许多使用此代码的示例;但是,当我尝试执行它时,它不起作用,我不明白为什么。

Dim xl As Object
Set xl = CreateObject("Excel.Application")
xl.Range("G2:G375").FormatConditions.Add Type:=xlExpression, Formula1:="=OR(G2=""New"",G2=""Reintroduced"")"

我收到了Run-time error '5': Invalid procedure call or argument。通过定义活动表、工作表名称、活动工作簿等进行了尝试,但仍然出现同样的错误。我读过的所有内容都说它应该可以工作,但又一次,它不是。

此外,电子表格中的数据在代码中的其他位置打开。

这只是我用作参考的一个例子:

enter link description here

【问题讨论】:

  • Option Explicit 添加到包含该代码的模块的声明部分。然后从 VB 编辑器的主菜单运行 Debug->Compile。修复编译器抱怨的任何问题 (xlExpression?),然后再次尝试编译。坚持下去,直到不再出现编译错误。如果您遇到不知道如何修复的编译错误,请告诉我们编译错误消息以及编译器抱怨时突出显示的内容。

标签: excel vba ms-access conditional-formatting


【解决方案1】:

您可能需要在 Access 中添加对 Microsoft Excel 对象库的引用。

有了这个参考,这段代码在我测试时就可以工作了。

Dim xl As Excel.Application
Set xl = New Excel.Application
xl.Workbooks.Add
xl.ActiveWorkbook.ActiveSheet.Range("G2:G375").FormatConditions.Add Type:=xlExpression, Formula1:="=OR(G2=""New"",G2=""Reintroduced"")"
xl.Visible = True

【讨论】:

  • 如果要引用 Excel 库,不妨提前绑定 xl 实例,并从 IntelliSense/autocomplete 中受益。
  • 伙计,我以为我已经选择了它,所以我没有费心检查。原来我没有选择它...感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-11
相关资源
最近更新 更多