2015-05-04 51 views
0

我对vba编程非常陌生,我想知道执行以下操作的最佳方法是什么:从两个Excel文件(从特定列中读取数据)并将该数据写入第三个Excel文件中,首先写入第一个文件中包含的数据,然后写入第二个文件中包含的数据。下图说明了什么,我想做的事:在第三个文件中写入两个Excel文件的内容

enter image description here

我如何能做到在点击一个命令按钮,无需打开两个第一文件(我的意思是,我不希望用户看到他们)。

+0

如果您严格禁止打开文件,可以尝试使用['ADO(Active Data Objects)]](https://msdn.microsoft.com/en-us/library/windows/desktop/ms676795( v = vs.85)的.aspx) – L42

回答

0

你需要做这样

Workbooks.Open Filename:= "c:\myfile\FILE1.xls"FILE1.xls" 
Workbooks.Open Filename:= "c:\myfile\FILE2.xls" 

后打开在这种情况下,我们创建FILE3.xls的FILE1.xls和FILE.xls您可以创建或打开FILE3.xls,

Dim wb As Workbook 
Set wb = Workbooks.Add 

之后,您将读取FILE1.xls和FILE2.xls中的数据,您可以使用WHILE或其他LOOP进行读取,或者使用新文件中的COPY和PASTE数据进行读取。 在这种情况下,我们看到LOOP策略。对于 “FILE2.xls” 读取数据,并在 “FILE3.xls” 写,在你关闭

wb.SaveAs "c:\myfile\"FILE3.xls"" 
wb.Close 

并关闭读取数据文件

Dim i as Integer 
Dim value as String 
i=0 
value = value = Workbooks("FILE1.xls").Worksheets("sheet1")..Range("B:B").Cells(i, 1) 


Workbooks("FILE1.xls").Worksheets("sheet1").Activate 
while value <> "" 

    Workbooks("FILE1.xls").Worksheets(2).Range("A:A").Cells(i, 1) = value  

    value = value = Workbooks("FILE1.xls").Worksheets("sheet1")..Range("B:B").Cells(i, 1) 

Wend 

重复STE

Workbooks("FILE1.xls").Close 
Workbooks("FILE2.xls").Close 
相关问题