如何在一个工作簿中将多个Excel Spreasheets(.csv)聚合/编译为单独的工作表?

我不是一个程序员 – 但我需要/想要在Excel中编写一个命令来将多个.csv文件聚合到一个工作簿中的单独工作表中,并运行一次,并复制/粘贴一个.csv文件的内容,错误与此错误:

Runtime error '438': Object does not support this property or method. 

我已经缩小到这一行:

 'paste it ThisWorkbook.Worksheets(Sheets.Count).Range("A1").Paste 

但是,因为我是所有这一切的新手,我不确定要做什么。 到目前为止,我一直在抓取来自networking的代码片段。

 Private Sub CommandButton1_Click() Dim strFile As String, strPath As String Dim wkb As Workbook 'Change this path for your own file location: strPath = "C:[FILE PATH HERE]" 'this returns an empty string "" if the file cannot be found and will error if the folder is incorrect strFile = Dir(strPath & "*.csv") Do While strFile <> "" 'open the csv file and assign it to a variable so that we can easily reference it later Set wkb = Workbooks.Open(strPath & strFile) 'add a new worksheet at the end of the macro workbook to paste into ThisWorkbook.Sheets.Add After:=Sheets(Sheets.Count) 'get the range and copy it wkb.Sheets(1).UsedRange.Copy Debug.Print (Sheets.Count) 'paste it ThisWorkbook.Worksheets(Sheets.Count).Range("A1").Paste 'close the csv file wkb.Close 'find the next file - Dir without parameters will look for the next file in the folder that matches the first Dir call strFile = Dir Loop End Sub 

  Sub Dougsloop() Dim wbk As Workbook Dim Filename As String Dim path As String Dim wsO As Workbook Dim StartTime As Double Dim SecondsElapsed As Double Dim aRR As Variant Dim rowC As Long Dim colC As Long Application.ScreenUpdating = False Application.DisplayAlerts = False Application.Calculation = xlCalculationManual StartTime = Timer path = "path to folder of files" & "\" Filename = Dir(path & "*.csv??") Set wsO = ThisWorkbook wsO.Sheets(1).Select Do While Len(Filename) > 0 DoEvents Set wbk = Workbooks.Open(path & Filename, True, True) aRR = wbk.Sheets(1).UsedRange rowC = wbk.Sheets(1).UsedRange.Rows.Count colC = wbk.Sheets(1).UsedRange.Columns.Count wsO.ActiveSheet.Range(wsO.ActiveSheet.Cells(1, 1), wsO.ActiveSheet.Cells(rowC, colC)).Value2 = aRR wbk.Close False Filename = Dir wsO.Sheets.Add After:=Worksheets(Worksheets.Count) Loop Application.ScreenUpdating = True Application.DisplayAlerts = True Application.Calculation = xlCalculationAutomatic SecondsElapsed = Round(Timer - StartTime, 2) MsgBox "This code ran successfully in " & SecondsElapsed & " seconds", vbInformation End Sub