Я пытаюсь запустить макрос в Personal.XLSB, используя python.
Когда я сам запускаю макрос PERSONAL.XLSB!PIVOTS
из книги Excel, он работает.Кроме того, если я скопирую и вставлю код VBA в «This Workbook» и запусту xlApp.Run('Pivots')
, он будет работать.
Однако, когда я использую xlApp.Run('C:\\Users\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\PERSONAL.XLSB!Pivots')
, он не будет работать.Мне нужно, чтобы он работал в «PERSONAL.XLSB», так как я буду использовать один и тот же макрос в нескольких файлах.
from __future__ import print_function
import unittest
import os.path
import win32com.client
class ExcelMacro(unittest.TestCase):
def test_excel_macro(self):
try:
xlApp = win32com.client.DispatchEx('Excel.Application')
xlsPath = os.path.expanduser('C:\\Users\\colm_mcsweeney\\Documents\\Attachments\\Dash.09.05.19.xlsm')
wb = xlApp.Workbooks.Open(Filename=xlsPath)
xlApp.Visible = True
xlApp.Run("C:\\Users\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\PERSONAL.XLSB!Pivots")
wb.Save()
xlApp.Quit()
print("Macro ran successfully!")
except:
print("Error found while running the excel macro!")
xlApp.Quit()
if __name__ == "__main__":
unittest.main()