将不同工作表中的列粘贴到一个工作表中
Pasting columns from different Worksheets into one
我遇到了以下问题,需要一些帮助:
我试图将文件夹的每个 excelfile 的第一列粘贴到一个 excelsheet 中,以便第一列在 A 列中,第二列在 B 列中,依此类推。这些列始终位于每个工作簿的第一个 sheet。
这是我现在拥有的:
Sub OpenFiles()
Const FILE_PATH As String = "C:\Users\"
Dim MyFile As String
Dim objWorkbook As Workbook
Dim c As Integer
Dim destWb As Workbook
c = 1
Application.ScreenUpdating = False
MyFile = Dir$(FILE_PATH & "*.xlsx")
Set destWb = Workbooks.Open("C:\Users\Translations.xlsx")
Do Until MyFile = ""
Set objWorkbook = Workbooks.Open(Filename:=FILE_PATH & MyFile, UpdateLinks:=3)
objWorkbook.Worksheets(1).Range("A1:A100").Copy _
destWb.Worksheets(1).Range(destWb.Worksheets(1).Cells(1, c)).Paste
c = c + 1
Call objWorkbook.Close(SaveChanges:=True)
MyFile = Dir$
Loop
Application.ScreenUpdating = True
End Sub
无法弄清楚如何从一个工作簿复制粘贴到另一个工作簿
感谢您的帮助,
瓦伦丁
我使用了您的 vba 脚本并做了一些修改以在我的电脑上进行测试。复制和粘贴经常会导致错误。而且您的脚本 destWb.Worksheets(1).Range(destWb.Worksheets(1).Cells(1, c)).Paste
看起来有问题。这是我修改后的脚本,效果很好。
Sub OpenFiles()
Const FILE_PATH As String = "C:\Users\***\Desktop\vba_test\"
Dim MyFile As String
Dim objWorkbook As Workbook
Dim c As Integer
Dim i As Integer
Dim destWb As Workbook
c = 1
Application.ScreenUpdating = False
MyFile = Dir$(FILE_PATH & "*.xlsx")
Set destWb = Workbooks.Open("C:\Users\***\Desktop\dest.xlsx")
Do Until MyFile = ""
Set objWb = Workbooks.Open(FILE_PATH & MyFile, True, True)
For i = 1 To 20
destWb.Worksheets(1).Cells(1, c).Offset(i - 1, 0).Value = objWb.Worksheets(1).Range("A" & i).Value
Next i
c = c + 1
Call objWb.Close(SaveChanges:=False)
Set objWb = Nothing
MyFile = Dir$
Loop
Application.ScreenUpdating = True
End Sub
我遇到了以下问题,需要一些帮助: 我试图将文件夹的每个 excelfile 的第一列粘贴到一个 excelsheet 中,以便第一列在 A 列中,第二列在 B 列中,依此类推。这些列始终位于每个工作簿的第一个 sheet。
这是我现在拥有的:
Sub OpenFiles()
Const FILE_PATH As String = "C:\Users\"
Dim MyFile As String
Dim objWorkbook As Workbook
Dim c As Integer
Dim destWb As Workbook
c = 1
Application.ScreenUpdating = False
MyFile = Dir$(FILE_PATH & "*.xlsx")
Set destWb = Workbooks.Open("C:\Users\Translations.xlsx")
Do Until MyFile = ""
Set objWorkbook = Workbooks.Open(Filename:=FILE_PATH & MyFile, UpdateLinks:=3)
objWorkbook.Worksheets(1).Range("A1:A100").Copy _
destWb.Worksheets(1).Range(destWb.Worksheets(1).Cells(1, c)).Paste
c = c + 1
Call objWorkbook.Close(SaveChanges:=True)
MyFile = Dir$
Loop
Application.ScreenUpdating = True
End Sub
无法弄清楚如何从一个工作簿复制粘贴到另一个工作簿
感谢您的帮助,
瓦伦丁
我使用了您的 vba 脚本并做了一些修改以在我的电脑上进行测试。复制和粘贴经常会导致错误。而且您的脚本 destWb.Worksheets(1).Range(destWb.Worksheets(1).Cells(1, c)).Paste
看起来有问题。这是我修改后的脚本,效果很好。
Sub OpenFiles()
Const FILE_PATH As String = "C:\Users\***\Desktop\vba_test\"
Dim MyFile As String
Dim objWorkbook As Workbook
Dim c As Integer
Dim i As Integer
Dim destWb As Workbook
c = 1
Application.ScreenUpdating = False
MyFile = Dir$(FILE_PATH & "*.xlsx")
Set destWb = Workbooks.Open("C:\Users\***\Desktop\dest.xlsx")
Do Until MyFile = ""
Set objWb = Workbooks.Open(FILE_PATH & MyFile, True, True)
For i = 1 To 20
destWb.Worksheets(1).Cells(1, c).Offset(i - 1, 0).Value = objWb.Worksheets(1).Range("A" & i).Value
Next i
c = c + 1
Call objWb.Close(SaveChanges:=False)
Set objWb = Nothing
MyFile = Dir$
Loop
Application.ScreenUpdating = True
End Sub