使用Python调用打开文件夹中所有文件的Excel宏

时间:2016-09-22 18:55:23

标签: python excel vba

我有一个Python程序(如块1所示),用于打开Excel文件并调用宏。

Excel宏(如方框2所示)打开特定文件夹中的所有Excel文件。

Python程序打开Excel文件并调用宏,我已经用不同的文件对其进行了测试,但是当我尝试这个Excel文件时,它会打开,但宏不会运行。

以下是Python

from win32com.client import Dispatch
xl = Dispatch('Excel.Application')
wb = xl.Workbooks.Open("K:\\updatebloomberg.xlsm")
xl.Visible = True
wb.Application.Run("'updatebloomberg.xlsm'!Module1.runfiles()")
wb.Close(True)

,这是VBA

Sub runfiles()

Dim wb As Workbook
Dim myPath As String
Dim myFile As String
Dim myExtension As String
Dim ws As Worksheet
Dim c As Range

  myPath = "K:\Bloomberg Data\"

  myExtension = "*.xlsx"

  myFile = Dir(myPath & myExtension)

  Do While myFile <> ""
      Set wb = Workbooks.Open(Filename:=myPath & myFile)
      myFile = Dir
  Loop

Application.OnTime (Now + TimeValue("00:00:02")), "refreshSheet"

End Sub

1 个答案:

答案 0 :(得分:3)

为什么你要做到这一点?

import glob

for fnam in glob.glob("K:\Bloomberg Data\*.xlsx"):
    os.startfile(fname)

如果这不起作用你是否检查过你的网络驱动器((我假设是一个网络驱动器)当你查看文件浏览器时没有X)