我已經寫了這個,它對大部分的作品...我找到的第一個文件。關於第二個文件,我得到以下錯誤:將多個空格分隔文件導入到一個Excel工作表中
「的信息無法粘貼,因爲複製區域和粘貼區域是不一樣的尺寸和形狀,請嘗試以下之一:
- 點擊單個單元格,然後粘貼。
- 選擇一個相同大小和形狀的矩形,然後粘貼。「
我不明白我做錯了什麼。
假設遍歷一個目錄,並抓取所有.txt文件並將它們導入到Sheet1或Sheet2中。我可以得到第一個導入正常,但下一個文件拋出錯誤,而不是追加到同一電子表格。
Sub PopulateSheets()
Dim file As String, path As String, fullpath As String, StaticPath As String
Dim count As Integer
Dim wbI As Workbook, wbO As Workbook
Dim wsI As Worksheet
Dim Sheet As String
Dim RowCount As Long
On Error GoTo Errorcatch
RowCount = 1
count = 1
StaticPath = Sheet3.Cells(2, 7)
While (count <= 2)
If count = 1 Then
path = StaticPath & "\com\*.txt"
Else
path = StaticPath & "\res\*.txt"
End If
file = Dir(path)
Sheet = "Sheet" & count
While (file <> "")
fullpath = Left(path, InStr(1, path, "*.txt") - 1) & file
Set wbI = ThisWorkbook
Set wsI = wbI.Sheets(Sheet) '<~~ Sheet where I want to import
Set wbO = Workbooks.Open(fullpath)
RowCount = wsI.Range("A:A").CurrentRegion.Rows.count
wbO.Sheets(1).Cells.Copy Destination:=wsI.Range("A" & RowCount)
wbO.Close SaveChanges:=False
file = Dir 'Grab Next File
Wend
count = count + 1
Wend
Exit Sub
Errorcatch:
MsgBox Err.Description
End Sub
它已經粘貼從第一文件中的信息後,在wbO.Sheets(1).Cells.Copy Destination:=wsI.Range("A" & RowCount)
炸燬,關閉它,然後嘗試粘貼第二個文件。
在這一點上,任何幫助,將不勝感激。
附註 我注意到,如果我換wbO.Sheets(1).Cells.Copy Destination:=wsI.Range("A" & RowCount)
與wbO.Sheets(1).Cells.Copy wsI.Cells
,將所有文件粘貼到表的...但它之前它覆蓋文件。我需要它追加並且不知道如何做到這一點。
路徑部分實際上像冠軍一樣工作。它會根據需要抓取目錄中的所有文件。問題是當vba代碼放到表單中時。該路徑的值類似於「C:\ Comres」。根據是第一遍還是第二遍,我會去C:\ comres \ com或\ res。所以這部分不是問題,它的工作原理。 – user2597159
我看到你在說什麼,我把一個StaticPath變量放在修復那個小傢伙的路徑中,但是這仍然不能解決問題,因爲它是如何將數據複製到電子表格中而不是它如何訪問它。 – user2597159