首页 > 解决方案 > 使用 VBA Excel 宏将工作表合并到一个工作簿中;macOS 的问题?

问题描述

我一直在尝试按照以下说明(在其他几个关于 SO 和在线的指南中)运行 Excel 宏以将多个 .xls 文件合并到一个 .xlsx 工作簿中。我正在为 Mac 16.16.1 使用 macOS 和 Microsoft Excel。

将多个 Excel 工作簿合并为一个包含多个工作表的工作簿

[来自链接的代码复制如下,仅编辑路径:]

Option Explicit
Const path As String = "/Users/mbpro/Desktop/Project Work/Excel Sheets"
Sub GetSheets()
Dim FileName As String
Dim wb As Workbook
Dim sheet As Worksheet

FileName = Dir(path & "*.xls*")
Do While FileName <> ""
    Set wb = Workbooks.Open(FileName:=path & FileName, ReadOnly:=True)
    For Each sheet In wb.Sheets
        sheet.Copy After:=ThisWorkbook.Sheets(1)
    Next sheet
    wb.Close
    FileName = Dir()
Loop
End Sub

在我指向包含 .xls 文件的文件夹的路径后,此脚本(和密切相关的脚本)运行,从而path分配(并Dir()评估为)一个空字符串。因为肯定启用了宏,所以我相信 Excel 无法找到路径,即使我指定了导航到文件夹并在终端中输出“pwd”时出现的相同目录字符串。

单步执行 VBA 窗口中的指令,FileName 只是被分配给一个空字符串。为什么 Excel 找不到目录?我不认为这是语法问题,是不是一些内部 macOS 访问控制问题?

标签: excelvbamacos

解决方案


推荐阅读