在一台计算机上打开工作簿错误代码 32809,但在另一台计算机上打不开

2023-12-05

我有一个 Excel 2013 宏工作簿。

本工作簿在过去 6 个月中一直运行良好。今年的第一天,我遇到了下面的问题,代码如下。这行代码所做的就是在打开工作簿时将 activex 复选框控件设置为 true。

Sheets(WSCHARTS).chkAllJPM.value = True

我设法通过之前的帖子解决了这个问题。答案是以下说明。然而,第一天回到办公室的团队成员在使用此工作簿时遇到了问题。他们再次每天使用这本工作簿,没有出现任何问题。代码在上面的同一行上进行调试,错误代码号为 32809。

我尝试按照为我解决问题的相同说明进行操作,但没有感到高兴。我无法在我的计算机上复制这些问题。不确定是什么原因导致此错误?

这是子例程。请注意 WSCHARTS 是 public const string - 它的值为“charts”

Sub SetDefaultSetting()

' set the default view upon opening the spreadsheet

Dim ws As Worksheet
Dim wsTime As Worksheet
Set wsTime = ThisWorkbook.Sheets(WSTSJPM)
Set ws = ThisWorkbook.Sheets(WSCHARTS)

' get last date
Dim lRow As Long
lRow = wsTime.Range("A65536").End(xlUp).Row
ws.DropDowns("DropDownStart").ListFillRange = wsTime.Name & "!" & wsTime.Range("A2:A" & lRow).Address
ws.DropDowns("DropDownEnd").ListFillRange = wsTime.Name & "!" & wsTime.Range("A2:A" & lRow).Address

ws.Range(COLDATES & "1") = 1                      ' start date is 12 dec 2013
ws.Range(COLDATES & "2") = lRow - 1               ' latest avaiable date

' control are linked to cells so just need to change their cell values
ws.Range("C1") = 6
ws.Range("D1") = 7
ws.Range("E1") = 8
ws.Range("F1") = 9
ws.Range("G1") = 10

' rest should be blank
ws.Range("H1") = 1
ws.Range("I1") = 1
ws.Range("J1") = 1
ws.Range("K1") = 1
ws.Range("L1") = 1

Sheets(WSCHARTS).chkAllJPM.value = True
ws.OLEObjects("chkBOAML5").Object.Enabled = False

Set wsTime = Nothing
Set ws = Nothing

UPDATE

因此,我创建了一个新工作簿,只需在 Sheet1 上放置一个 activex 复选框控件并将其重命名为 chkTest。

我添加了下面的代码。该代码可以在我的电脑上运行,但不能在我同事的计算机上运行。现在这真是令人沮丧。有任何想法吗?

 Private Sub Workbook_Open()

    Sheets("Sheet1").chkTest.Value = True

 End Sub

另一个更新

不确定这是否与我的问题有关。当我按照前面提到的说明进行操作时,我确实注意到在我的 c:\users\username\Appdata\local\Temp\VBE 目录中我有一个我的同事没有的额外文件。

我有 MsForms.exd 和 RefEdit.exd。我的同事只有 MsForms.exd 文件。这会导致任何问题吗?

希望我的最后一次更新

因此,将上面更新中的代码更改为下面的代码现在可以在我们的两台计算机上运行。有谁能够解释为什么或有什么区别吗?

Private Sub Workbook_Open()

Dim ws As Worksheet
Set ws = Sheets("Sheet1")
ws.OLEObjects("chkTest").Object.Value = False

End Sub

只有一种解决方案可以 100% 工作(相信我,我一直在公司环境中研究(可以说)所有可能的解决方案):摆脱嵌入的 ActiveX 控件.

IMO,你有三个选择:

  1. 选项 1 是将控件的功能移至功能区中,也许根据 ActiveX 控件添加用户窗体(当然,命令按钮不需要用户窗体)。这里的工作量很大,但这是最干净、最安全的方法。

  2. 选项 2 是用表单控件替换 ActiveX 控件。这确实很糟糕,因为您将失去 ActiveX 控件提供的大部分功能,但它仍然是一个选项。

  3. 选项 3 是用 Shape 对象替换 ActiveX Controls;一些新的具体问题需要处理(例如,保护/锁定),但您可以获得一系列漂亮的格式选项:)

无论如何,您都需要返工/更新您的工作簿。我主要使用选项 1,也使用了一些选项 3。请注意,您可以在同一个应用程序中混合使用上述选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在一台计算机上打开工作簿错误代码 32809,但在另一台计算机上打不开 的相关文章

随机推荐

  • 帮助理解 SVN 外部

    我正在为我的公司研究 svn externals 看起来这对我们来说是一个很好的功能 我们有几种产品经常引用共享组件 但有一个坏习惯 即落后于旧版本 有时甚至落后于不同分支的代码库 我已经阅读了有关它们现在如何工作的相当多的内容 并且我想我
  • 查看 gitlab 中子模块提交的差异

    我有一个 gitlab 版本 7 3 当我使用普通存储库时 它工作得很好 不过 我在 gitlab 项目中添加了一个 github 子模块 在我的仓库中 我在提交和推送 git push recurse submodules check 之
  • 编组 C 结构及其中的结构数组

    我在这个论坛中提到了类似的问题 但没有得到我的问题的解决方案 我已经在编组问题上苦苦挣扎了一段时间 我有一个结构 其中包含另一个结构的数组 该平台是Win CE 我使用的是 Visual Studio 2008 和 NET CF 3 5 代
  • 在 Tensorflow 中转换图像时,为什么会出现 ValueError('\'image\'必须完全定义。') ?

    我想通过在张量流中链接不同的图像转换运算符来进行实时数据增强 我的代码从图像解码开始 然后运行不同的转换 但它抛出了一个ValueError image must be fully defined 这是重现此错误的示例 def decode
  • Android 获取表列表

    有谁知道在Android中通过代码获取表名列表的SQL吗 我知道 tables通过命令 shell 执行此操作 但这不适用于代码 与元数据等有什么关系吗 只是不得不做同样的事情 这似乎有效 public ArrayList listTabl
  • ClassLoader.getSystemClassLoader().getResource()在servlet容器和测试环境中的不同行为

    我有一个网络应用程序 我的要求是读取一些文件并处理它 并在应用程序启动时将文件内容保留在数据库中 class MyUtil Read the files public static void readFiles File file new
  • 将指针 char 参数传递给线程中的函数

    当我执行此代码时 我收到 分段错误 核心转储 include
  • 基于多列创建滞后特征

    我有一个时间序列数据集 我需要提取滞后特征 我正在使用下面的代码 但得到了所有 NAN df groupby week id1 id2 id3 as index False value shift 1 input week id1 id2
  • 使用嵌套 foreach 循环从数组中获取值

    我有一个很长的数组 我希望从中获取所有值并将其存储在一个单独的变量中 并将每个值存储在数据库中 我拥有的数组是 Array success gt 1 categories gt Array 0 gt Array category id gt
  • Tomcat 的 Catalina 实用程序线程定期使用高 CPU 和内存

    We have a webapp that uses on average 20 CPU when idle with no network traffic or any kind of requests It is running on
  • PHP 中的 IP 到国家/地区 [重复]

    这个问题在这里已经有答案了 可能的重复 IP 到国家 地区 在 PHP 中从给定 IP 获取国家 地区的最佳方法是什么 看一眼 知识产权国家手册 您可以免费下载这个数据库 导入数据库后 您需要运行以下查询以从 IP 获取国家 地区 coun
  • 使用 coredata 时出现完全不相关的错误

    桥接标头 Users bobby Desktop Project Project Name Project Name Bridging Header h 不存在 我在尝试使用核心数据在我的 iPhone 应用程序中保存数据时遇到此错误 即使
  • Chrome 和 --allow-file-access-from-files

    我有一个 jquery AJAX 登录页面 可以在除 Chrome 之外的所有浏览器中完美运行 我似乎在 Chrome 中遇到了一个问题 该问题在Chrome 中使用本地文件的 jQuery getJSON 问题 有人说这是一个错误 有人说
  • 使用 iText 将 tiff 文件转换为 pdf 文件时出现异常

    当我尝试转换tiff文件至pdf文件通过使用itextpdf 5 5 5 出现以下异常 java lang RuntimeException 扫描线必须以 EOL 代码字开头 在 com itextpdf text pdf codec TI
  • 无法让 Beanstalkd 队列为 PHP 工作

    我有运行 XAMPP 的 Ubuntu 灯栈 Linux Apache MySQL PHP Pear 我想一起使用 PHP 和 Beanstalkd 来制作一个简单的队列 当用户继续时page1 php a JOB被发送到QUEUE for
  • 在定界文档中使用expect命令

    对于以下微小的期望脚本 其函数已添加到 bash 配置文件中 chai expect lt lt EOF spawn ssh myuser myserver expect send mypassword r EOF We get bash
  • Service Worker 的存储限制是多少?

    大多数浏览器提供 localStorage 每个域的存储限制为 5MB 对于服务工作者是否存在这样的内存限制 约束 我知道网络工作人员 服务工作人员所基于的 没有这样的限制 但 Web Workers 并不完全用于资源缓存 而是更多地用于处
  • Symfony2 选择字段验证不起作用

    我在 Symfony 2 7 10 中有一个表单 其定义如下
  • 跨域 POST 请求的 CSRF 验证在生产中失败

    HTTP X CSRFTOKEN 标头与 csrftoken cookie 内的内容不匹配 我怎样才能检查cookie Set Cookie 不会显示在跨域请求的响应标头中 我已经按照以下位置中的说明进行操作 使用 Django 进行 CS
  • 在一台计算机上打开工作簿错误代码 32809,但在另一台计算机上打不开

    我有一个 Excel 2013 宏工作簿 本工作簿在过去 6 个月中一直运行良好 今年的第一天 我遇到了下面的问题 代码如下 这行代码所做的就是在打开工作簿时将 activex 复选框控件设置为 true Sheets WSCHARTS c