如何自动将列从一个Excel文件复制到另一个Excel

时间:2015-08-20 16:06:17

标签: excel vba excel-vba

我是视觉基础的新手(甚至不是一天之久:) :)我们将非常感谢您的帮助。

我有两个excel文件,Source和Target文件。源文件在不同列的第一个选项卡/表中包含所有信息。目标文件是半空的(其余部分预先填充了默认值)并且需要填充与源文件相同的值(如果我们可以保留,目标格式将是好的),但是在不同选项卡的不同列中。 / p>

有人可以通过以下宏功能来启发我:

(例如:)

1)从源文件/表1 /列A3及以下内容中取出内容,并将其复制到目标文件/表1 /列X7及以下

2)从源文件/表1 /列B3及以下内容中取出内容,并将其复制到目标文件/表2 /列X5及以下

3)从源文件/表1 /列C3及以下内容中取出内容,并将其复制到目标文件/表1 /列Y2及以下,同时复制到目标文件/表2 /列Z4中以及。

因此,基本上A列转到另一个文件的第一个选项卡列X,B转到第二个选项卡列X,C分别转到第一个和第二个选项卡,列Y和Z. (有可能是目标文件中的起始行,每次都不同。)

如果我有基本的结构代码,我想我可以根据我的具体问题调整文件位置,工作簿/工作表名称和列。

非常感谢您抽出时间回答我的问题并期待您的任何想法!如果您需要进一步澄清某些事情,请告诉我。

干杯!
帕诺斯

P.S.1。请注意,我们要从一个文件复制到另一个文件(不要在同一文件中的不同工作表中复制!)
P.S.2。只是将列从一个excel文件复制到另一个excel文件,我不介意打开/关闭/保存工作簿自动化或任何其他自动化。

也许启动功能可能是?

Sub Demo() 

Dim wbSource As Workbook 
Dim wbTarget As Workbook 

‘ First open both workbooks : 
Set wbSource = Workbooks.Open(“”) ‘ <<< path to source workbook 
Set wbTarget = Workbooks.Open("") ' Workbooks.Open(" ") ' <<< path to destination workbook 

'Now, transfer values from wbSource to wbTarget: 

wbTarget.Sheets("Sheet Name?").Range("A3:A9999").Value = wbSource.Sheets("Sheet Name?").Range("X7:X9999") wbSource.Close 

End Sub

1 个答案:

答案 0 :(得分:1)

这是一个非常简短的例子:

Sub panos()
  Dim r1 As Range, r2 As Range, N As Long

  Workbooks.Open "C:\TestFolder\source.xlsx"
  N = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
  Set r1 = Sheets("Sheet1").Range("A3:A" & N)

  Workbooks.Open "C:\TestFolder\dest.xlsx"
  Set r2 = Sheets("Sheet1").Range("X7")

  r1.Copy r2
End Sub