我有一个代码,它从一个 excel 表中获取值,并将它们放在另一个表中的相同位置。这包括 ComboBox 索引以及单元格值。两个电子表格具有相同的结构和相同的表单元素,但一个工作表具有不同的图像作为标题。
这是错误的行:
Workbooks(Template).Sheets(Sheet1).ComboBox12.ListIndex = Workbooks(OriginalFile).Sheets(Sheet1).ComboBox12.ListIndex
Template
并且OrignalFile
是文件名,Sheet1
是工作表选项卡名称,并且在两个文件中都ComboBox12
以“”形式存在。ComboBox12
所以这就是问题所在。当我运行首先打开两个文件然后运行这些命令的脚本时,它会出错
"Run-time error '438' Object doesn't support this property of method".
但是,如果我在两个文件都已经打开的情况下运行代码行,它运行得很好。
为了让事情变得更有趣,在 97-2003 .xls 文件上运行代码可以完美运行。模板文件的版本似乎没有什么区别。只有当原始文件是 .xlsm 版本时,代码才会出错。(它们都从 VBA 窗口打开后我仍然可以运行)
为了证明是导致行为改变的文件版本,我获取了一个代码可以正常工作的 .xls 文件,并将其保存为 .xlsm 并使用新文件名重新运行代码,但它出错了。
有任何想法吗?
excel打开.xlsm文件后是否会发生我的vba宏丢失的情况?
我很感激任何帮助!!!