在一个WORKSHEET Excel for Mac中合并CSV

细节-

我有119个.csv文件。 我想将它们全部放在一张工作表上,并将文件名放在列的每个单元格中,以获取来自该文件的数据。 因此,从该文件带来的每一行都有列A中的文件名

我正在使用MAC Excel 16,因此MAC OS中的path结构与Windows不同。 我从一个csv文件logging了另一个macros加载数据,生成的path如下所示。

我已经find并一直在使用的代码如下:

Sub ImportCSV() 'Author:   Jerry Beaucaire 'Date:     10/16/2010 'Summary:  Import all CSV files from a folder into a single sheet '          adding a field in column A listing the CSV filenames Dim wbCSV  As Workbook Dim wsMstr As Worksheet:   Dim fPath  As String:         Dim fCSV   As String Set wsMstr = ThisWorkbook.Sheets("Sheet1") fPath = "/Users/bensimmons/Downloads/GMI/" Application.ScreenUpdating = False fCSV = Dir(fPath & "*.csv") Do While Len(fCSV) > 0      Set wbCSV = Workbooks.Open(fPath & fCSV)      Columns(1).Insert xlShiftToRight Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name ActiveSheet.UsedRange.Copy wsMstr.Range("A" & Rows.Count).End(xlUp).Offset(1) wbCSV.Close False fCSV = Dir    Loop  Application.ScreenUpdating = True End Sub 

我收到一个编译错误:“子或函数没有定义(ThisWorkbook 7:26)”我已经研究了它,但不能确定什么是没有被正确引用。

感谢下面的评论我更新了代码:

 Sub ImportCSV() Dim wbCSV  As Workbook Dim wsMstr As Worksheet: Dim fPath  As String: Dim fCSV   As String Set wsMstr = ThisWorkbook.Sheets("Sheet1") fPath = "/Users/bensimmons/Downloads/GMI/" Application.ScreenUpdating = False fCSV = Dir(fPath, MacID("CSV")) Do While Len(fCSV) > 0 Set wbCSV = Workbooks.Open(fPath & fCSV) Columns(1).Insert xlShiftToRight Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name ActiveSheet.UsedRange.Copy wsMstr.Range("A" & Rows.Count).End(xlUp).Offset(1) wbCSV.Close False fCSV = Dir Loop Application.ScreenUpdating = True End Sub 

我没有得到任何错误 – 但是当我运行macros时没有发生任何错误。