我正在尝试使用win32com自动执行任务。以下是部分代码,在我的系统上运行正常。但是,当我的同事运行相同的代码时,出现错误。根据错误消息,似乎它无法访问名为“ Control”的工作表(文件中唯一的工作表)。我也尝试使用ws = wb.Worksheets(1),但存在相同的错误。
File "<ipython-input-46-2da27b7ec405>", line 2, in <module>
ws=wb.Worksheets("Control")
File "C:\Anaconda 3\lib\site-packages\win32com\client\dynamic.py", line 197, in __call__ return self._get_good_object_(self._oleobj_.Invoke(*allArgs),self._olerepr_.defaultDispatchName,None) com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147352565), None)
我的同事在电子表格中启用了一些excel加载项,我能想到的唯一原因是这些加载项之一导致了此问题。但是,他需要这些加载项。有解决办法吗?
excel = win32.Dispatch("Excel.Application") # create an instance of Excel
excel.Visible = 1 #Uncomment this to show Excel working through the code
wb = excel.Workbooks.Open(Filename=r'C:\\Users\\User\\Desktop\\SHT.xlsm')
ws=wb.Worksheets("Control")
col = 4
row = 22
for i in range(len(curves)):
ws.Cells(row,col).Value=curves[i]
row+=1
wb.Save()
wb.Close()
excel.Quit()