在一个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时没有发生任何错误。