VBA代码导入多个列从一张到另一张
我想从一个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
更新是根据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
是的,我可以使用列(“A:C”),但我的列不顺序(即“A,B,F,H”),我期待导入 – Smoulder
已更新。Obviou狡猾,如果你改变了列,你将不得不改变数字。通常我可能会为我的工作做一些类似这样的查找功能,但希望这会让您对范围和if语句有所了解。 – PGCodeRider
它给我的脚本超出范围的错误出于某种原因我甚至尝试重命名该文件,以检查是否导致错误。它是否在你身边? – Smoulder
有趣的,我不知道,你可以使用串字母列 “数字”(即'栏( “A”)=专栏(1)'。我从一个完整的新手文章中学到了一些东西!因为这个原因,我会给它一个颠簸。因此,从技术上讲,你所需要的只是把你的代码改成“A:C”或者你需要的许多东西。 – PGCodeRider