Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 访问组合框列表索引,运行时错误';438&x27;,xls vs xlsm?_Vba_Excel_Combobox_Xlsm - Fatal编程技术网

Vba 访问组合框列表索引,运行时错误';438&x27;,xls vs xlsm?

Vba 访问组合框列表索引,运行时错误';438&x27;,xls vs xlsm?,vba,excel,combobox,xlsm,Vba,Excel,Combobox,Xlsm,我有一个代码,它从一个excel工作表中获取值,并将它们放在另一个工作表中的同一位置。这包括组合框索引和单元格值。两个电子表格具有相同的结构和相同的表单元素,但其中一个表格的标题图像不同 这是错误的一行: Workbooks(Template).Sheets(Sheet1).ComboBox12.ListIndex = Workbooks(OriginalFile).Sheets(Sheet1).ComboBox12.ListIndex Template和OrignalFile是文件名

我有一个代码,它从一个excel工作表中获取值,并将它们放在另一个工作表中的同一位置。这包括组合框索引和单元格值。两个电子表格具有相同的结构和相同的表单元素,但其中一个表格的标题图像不同

这是错误的一行:

    Workbooks(Template).Sheets(Sheet1).ComboBox12.ListIndex = Workbooks(OriginalFile).Sheets(Sheet1).ComboBox12.ListIndex
Template
OrignalFile
是文件名,
Sheet1
是工作表选项卡名,
ComboBox12
在这两个文件中都以“
Combox12
”的形式存在

这就是问题所在。当我运行脚本,首先打开两个文件,然后运行一系列这些命令时,它会出错

    "Run-time error '438' Object doesn't support this property of method". 
但是,如果我在两个文件都已打开的情况下运行代码行,它就可以正常运行

为了让事情变得更有趣,在97-2003.xls文件上运行代码非常有效。模板文件的版本似乎没有什么区别。只有当原始文件是.xlsm版本时,代码才会出错。(在它们都从VBA窗口打开后,我仍然可以运行)

为了证明是文件版本导致了行为的改变,我取了一个代码运行良好的.xls文件并将其保存为.xlsm,然后用新文件名重新运行代码,结果出错了

有什么想法吗

excel打开.xlsm文件后是否会出现vba宏丢失的情况


我感谢任何帮助

通过OLEObjects集合引用控件:

Workbooks(Template).Sheets(Sheet1).OLEObjects("ComboBox12").Object.ListIndex = Workbooks(OriginalFile).Sheets(Sheet1).OLEObjects("ComboBox12").Object.ListIndex