2017-07-28 56 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

相關問題