我正在尝试自动化以下内容:
我在一个目录中有150个文本文件,我想打开它,复制所有内容并粘贴到excel表上,偏移量为“c”。
每个文件都有95行,例如,在C:\myDir\MyFile1
中粘贴A1之后。我想将下一个.txt文件的内容粘贴到A101中。
到目前为止,我已经拼凑了一些代码:
Sub LoopThroughFiles()
Dim wb As Workbook
Dim ws As Worksheet
Dim StrFile As String
Dim C as integer
StrFile = Dir("E:\my path")
Do While Len(StrFile) > 0
Workbooks.Open(StrFile)
Workbook.Sheets(1).Cells.Copy ws.range("A"& c)
Workbook.Close
C = C + 100 'Each txt file = 95 rows
StrFile = Dir
Loop
End Sub
虽然这不是遍历列表。
发布于 2018-11-06 09:24:50
发布于 2018-11-06 10:18:06
刚刚为包含工作簿csvWb
的工作簿添加了一个var,并将folder
连接起来(以防excel文件不在文件夹中)。此外,Excel不喜欢复制目标中重叠的多个完整的工作表,因此让我们将自己限制为Rows("1:95")
(这可以节省内存和时间)。故意省略任何错误处理(文件可能被锁定),以保持示例简短。
Sub LoopThroughFiles()
Dim wb As Workbook
Dim ws As Worksheet
Dim StrFile As String
Dim C As Integer
Dim csvWb As Workbook
Dim folder As String
folder = "E:\my path\"
StrFile = Dir(folder)
Set ws = ThisWorkbook.ActiveSheet
C = 1
Do While Len(StrFile) > 0
Set csvWb = Workbooks.Open(folder & StrFile)
csvWb.Sheets(1).Rows("1:95").Copy ws.Range("A" & C) 'Each txt file = 95 rows
csvWb.Close
C = C + 100 'Each txt file = 95 rows
StrFile = Dir
Loop
End Sub
https://stackoverflow.com/questions/53173809
复制