VBA代码,用于从一张图纸向另一张图纸导入多列
我正在尝试将几个列从一个excel电子表格导入到另一个excel电子表格。下面是我在这个论坛上找到的代码,它运行良好。我面临的唯一问题是它只导入一列 有人可以指导我如何编辑代码,以便我可以导入多个列吗VBA代码,用于从一张图纸向另一张图纸导入多列,vba,excel,Vba,Excel,我正在尝试将几个列从一个excel电子表格导入到另一个excel电子表格。下面是我在这个论坛上找到的代码,它运行良好。我面临的唯一问题是它只导入一列 有人可以指导我如何编辑代码,以便我可以导入多个列吗 Importing single Column Sub CopyColumnToWorkbook() Dim sourceColumn As Range, targetColumn As Range Set sourceColumn = Workbooks("Source.xlsm").Work
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
根据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
有趣的是,我不知道你可以使用字符串字母作为列“数字”(即
Columns(“A”)=Columns(1)
。我甚至从一篇完整的新手文章中学到了一些东西!出于这个原因,我将对此进行一次改进。所以从技术上讲,你所需要的只是将代码更改为“A:C”或者不管你需要多少。有趣的是,我不知道你可以用字符串字母作为列“数字”(即列(“A”)=列(1)
。我甚至从一篇完整的新手文章中学到了一些东西!出于这个原因,我会给它一个提示。所以从技术上讲,你只需要将代码改为“A:C”或者你需要多少。是的,我可以使用列(“A:C”),但我的列不是顺序的(即“A,B,F,H”)我看起来很重要。显然,如果你改变了列,你就必须改变数字。通常我可能会在我的工作中做一些类似这样的查找函数,但希望这能让你了解范围和if语句。这会给我脚本超出范围的错误,因为某些原因,我甚至尝试将文件重命名为检查这是否是导致错误的原因。它是否在您这边运行?是的,我可以使用列(“A:C”),但我的列不是顺序的(即“A、B、F、H”)我看起来很重要。显然,如果你改变了列,你就必须改变数字。通常我可能会在我的工作中做一些类似这样的查找函数,但希望这能让你了解范围和if语句。这会给我脚本超出范围的错误,因为某些原因,我甚至尝试将文件重命名为检查这是否是导致错误的原因。它是否在您这边运行?