簡體   English   中英

將特定的列從一張紙復制到另一張紙

[英]Copy specific columns from one sheet to another

我想將某些列(如A,B,H)從一張紙復制到另一張紙,並將此代碼復制到模塊,但出現“運行時錯誤9”。

Sub CopyColumnToWorkbook()
Dim sourceColumn As Range, targetColumn As Range

Set sourceColumn = Workbooks("sheet1.xlsm").Worksheets(1).Columns("A")
Set targetColumn = Workbooks("sheet2.xlsm").Worksheets(1).Columns("A")

sourceColumn.Copy Destination:=targetColumn
End 

我正在處理具有55列和453行的數據。 我如何將備用列從一個工作表復制到另一個工作表...示例

我只需要2010-2011年的列。 在我的數據中。2010-2011年和2011-2012年是交替排列的,例如一列用於2010-2011年四月,下一列用於2011-2012年四月。.再次,下一列是2010-2011年五月,下一列是五月-2011-2012 ..等等。

使用like語句,例如:

Sub Button1_Click()
    Dim sh1 As Worksheet, sh2 As Worksheet
    Dim col As Long, rng As Range, c As Range, cRng As Range, cRws As Long, col2 As Long

    Set sh1 = Sheets("Sheet1")
    Set sh2 = Sheets("Sheet2")

    With sh1
        col = .Cells(1, .Columns.Count).End(xlToLeft).Column
        Set rng = .Range(.Cells(1, 1), .Cells(1, col))

        For Each c In rng.Cells

            If c Like "*2010-2011*" Then
                cRws = .Cells(.Rows.Count, c.Column).End(xlUp).Row
                Set cRng = .Range(.Cells(1, c.Column), .Cells(cRws, c.Column))

                cRng.Copy sh2.Cells(1, sh2.Columns.Count).End(xlToLeft).Offset(, 1)
            End If

        Next c
    End With

    sh2.Columns("A:A").EntireColumn.Delete Shift:=xlToLeft
    sh2.Cells.EntireColumn.AutoFit

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM