出于工作需要,自己编写了一套 Python 程序来提取多个不同 Excel 文档中特定数据到指定新 Excel 文档中指定位置的一个小程序。
因使用到了 openpyxl 库,而该库只对 xlsx 发生作用,可实际收集到的文档是 xlsx 和 xls 的混合,当然了,告知发送人改为 xlsx 也不是不可以
但我还是倾向于用技术解决,幸搜寻到了一份批量将 xls 到 xlsx 的 vba 代码,将内置于一个新的 Excel 文档中,保存在文档文件夹下,运行该 vba 后
即可以批量将该文件夹下的多层文件夹内的 xls 文档另存为 xlsx,避免了逐个打开后再另存为的机械动作,提高了工作效率。
作为工作日志,记录在这里,也方便有需要的朋友使用。

'*********** 访问当前文件夹下所有子文件夹及文件,
Dim iFile(1 To 100000) As String
Dim count As Integer

Sub xls2xlsx()
    iPath = ThisWorkbook.Path
    On Error Resume Next
    count = 0
    zdir iPath
    For i = 1 To count
        If iFile(i) Like "*.xls" And iFile(i) <> ThisWorkbook.FullName Then
            MyFile = iFile(i)
            FilePath = Replace(MyFile, ".xls", ".xlsx")
            If Dir(FilePath, 16) = Empty Then
                Set WBookOther = Workbooks.Open(MyFile)
                Application.ScreenUpdating = False
                ActiveWorkbook.SaveAs Filename:=FilePath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
                WBookOther.Close SaveChanges:=False      '解决不能 close 文件问题
                Application.ScreenUpdating = True
            End If
        End If
    Next
End Sub

Sub zdir(p)       '访问当前文件夹下所有子文件夹及文件
  Set fs = CreateObject("scripting.filesystemobject")
  For Each f In fs.GetFolder(p).Files
    If f <> ThisWorkbook.FullName Then count = count + 1: iFile(count) = f
  Next
  For Each m In fs.GetFolder(p).SubFolders
      zdir m
  Next
End Sub
Plain text

批量将xls到xlsx的vba代码

批量将 xls 到 xlsx 的 vba 代码