2017-07-28 60 views
1

我想从一个Excel电子表格导入几列到另一个。以下是我在这个论坛上找到的代码,它工作正常。我面临的唯一问题是它只导入一列。VBA代码导入多个列从一张到另一张

有人可以请指导我如何编辑代码,以便我可以导入多列?

Importing single Column 
Sub CopyColumnToWorkbook() 
Dim sourceColumn As Range, targetColumn As Range 

Set sourceColumn = Workbooks("Source.xlsm").Worksheets("2017"). Columns(“A”) 
Set targetColumn = Workbooks("Target.xlsm").Worksheets("Field WH Projections").Columns(“A”) 

sourceColumn.Copy Destination:=targetColumn 
End 
+0

有趣的,我不知道,你可以使用串字母列 “数字”(即'栏( “A”)=专栏(1)'。我从一个完整的新手文章中学到了一些东西!因为这个原因,我会给它一个颠簸。因此,从技术上讲,你所需要的只是把你的代码改成“A:C”或者你需要的许多东西。 – PGCodeRider

回答

0

更新是根据OP要求对不相关列

Sub ColumnCopy() 
Dim Source_Sheet As Worksheet, Target_Sheet As Worksheet 
Dim CLM As Integer, LastColumn As Integer 

Set Source_Sheet = Workbooks("Source.xlsm").Worksheets("2017") 
Set Target_Sheet = Workbooks("Target.xlsm").Worksheets("Field WH Projections") 

LastColumn = Source_Sheet.Cells.Find("*", searchorder:=xlByColumns, searchdirection:=xlPrevious).Column 

For CLM = 1 To LastColumn 

'Columns 1 or (A)... 2 (B).... F and H. 
If CLM = 1 Or CLM = 2 Or CLM = 6 Or CLM = 8 Then 

Source_Sheet.Columns(CLM).Copy Destination:=Target_Sheet.Columns(CLM) 

End If 

Next CLM 

End Sub 
+0

是的,我可以使用列(“A:C”),但我的列不顺序(即“A,B,F,H”),我期待导入 – Smoulder

+0

已更新。Obviou狡猾,如果你改变了列,你将不得不改变数字。通常我可能会为我的工作做一些类似这样的查找功能,但希望这会让您对范围和if语句有所了解。 – PGCodeRider

+0

它给我的脚本超出范围的错误出于某种原因我甚至尝试重命名该文件,以检查是否导致错误。它是否在你身边? – Smoulder

相关问题