【问题标题】:Good VBA script fails to run on other computer好的 VBA 脚本无法在其他计算机上运行
【发布时间】:2022-01-09 14:46:40
【问题描述】:

我有一个非常复杂的 Excel 宏工作簿。 VBA 代码似乎在我所在位置的 PC 上运行良好。一旦我将它发送给一位德国同事,它就无法在代码的意外位置运行。
我遇到的最后一个问题是Runtime error 5,当代码尝试修改UserFormCaption(以及一些文本框和cmd 按钮)时。
以前我们在 SlicerCache(x).ClearManualFilter 上遇到过同样的问题,但不知何故我治愈了自己...

我的第一个想法是打破巢With 并查看导致失败的行,但它立即是第一行。我认为它会对所有行执行相同的操作。
我检查了 windows 和 office 设置:

  • 我正在运行 Win10,英语语言设置和匈牙利语格式设置。 -> 代码运行良好。
  • 我当地的同事使用匈牙利语和格式运行相同的系统。 -> 代码运行良好。
  • 有问题的同事使用德语和格式设置运行 Win10。 -> 代码无法运行。
  • 我们在 VBA 编辑器中都有相同的参考库,没有丢失。 (我假设它是由 excel 文件本身携带的。)
  • 我有 Microsoft 365 MSO (16.0.13801.21050) 32 位,他运行 16.013801.21004 32 位。 (我想是 IT 部门安排的更新。)这部分代码在我最近一次办公室更新之前几个月,所以我不认为这是一个原因。

    subCommandButton_Click 事件调用,并调用用户表单zurueckExport。表格的设计是为了可以调用不同的目的,所以必须根据需要修改标题。

    我已经没有想法了,不知道是什么原因造成的。有人可以帮我解决这个问题吗?我会很高兴的。
Public Sub verExport()
   With zurueckExport
        .Caption = "Version Exportieren zum Creo"
        .Label1.Caption = "Welche Version möchten Sie zum Creo exportieren?"
        .CommandButtonExportieren.Visible = True
        .CommandButtonZurueckladen.Visible = False
        .CommandButtonKennlinie.Visible = False
        .KennlinieFormat.Visible = False
        .Show
   End With
End Sub

【问题讨论】:

  • 您是否尝试使用不同/更短的标题?像“Test 123”之类的?
  • 我不认为设置标题会导致问题。它只是访问zurueckExport 的第一行代码。我猜这会触发表单中的一些代码执行。在 VBE 中,转到工具-> 选项。在常规选项卡上,选择“中断类模块”。现在重新运行代码并检查是否显示了不同的错误位置。
  • 我们有一个宏需要在 5 个不同的国家/地区运行,所以我们有一个子程序来获取所有本地信息并在运行宏的内容之前设置它 - 用图表对我们的问题进行排序,x -轴标签等
  • @J0eBl4ck 你是对的,标题太长,导致了问题。
  • @SolarMike 这是个好主意,我会在未来尝试实施。坦克:)

标签: excel vba userform regional-settings


【解决方案1】:

字幕太长,导致在另一台计算机上生成错误消息。

分辨率:
我向UserForm 添加了几个不同的标签,并修改了它们的可见性而不是覆盖标题。

非常感谢@J0eBl4ck 的想法。

【讨论】:

    猜你喜欢
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2013-08-27
    相关资源
    最近更新 更多