2017-12-28 12 views
1

したがって、行コピーの特定の列をスキップする方法を探しています。私は、一連の可変サイズのレポートからコピー/貼り付けを行うループを実行しています。行コピーの列または列を単にスキップする方法が必要です。entirecolumn.deleteを処理するだけではできません。過剰とカウンターシステムを行うと壊れてしまう可能性があります。私が思うもの(私が知る限りでは存在しない)は、列の3〜5行を無視するようなものです。ここで行コピーの特定の列をスキップする方法

Dim LastRow As Long 
Dim LastCell As Range 

For Each Cell In Sheet10.Range("A:B") 
If Cell.Value Like "*Total*" Then 
     Set Mastersheet = Sheet10 
     Set Pastesheet = Sheet3 
    Cell.EntireRow.Copy 

    With Pastesheet 
     Set LastCell = Pastesheet.Cells.Find(What:="*", LookAt:=xlPart, LookIn:=xlFormulas, _ 
     SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False) 

     If Not LastCell Is Nothing Then 
      LastRow = LastCell.Row 
     End If 

     Pastesheet.Cells(LastRow + 1, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats 
    End With 
End If 

+0

あなたは無視したいのはいつも**のみ**列3〜5ですか?列をスキップすることを正当化する他の条件は何ですか? – Maldred

+0

@Maldred場合によっては、列3〜5の行セルを無視することになります。次のようにします。C4の全行4をE4にコピーしたい。 – George

+0

列Aと列Bの範囲をフィルタリングし、列C〜Eを非表示にしてから、表示セルをxlvisibleを使用してコピーして貼り付けます。 SOとgoogleの例があります。 – GMalc

答えて

0

は私がステップにあなたのタスク、壊れたダウンを達成する方法をです。

Dim rw As Range 

'Step 1: Insert helper column 
Columns(3).Insert 

'Step 2: If any cell in columns A or B contain the word "Total", put "1" in the helper column 
    For Each rw In Worksheets("Sheet10").UsedRange.Rows 
     If rw.Cells(1, 1).Value Like "*Total*" Or rw.Cells(1, 2).Value Like "*Total*" Then 
      rw.Cells(1, 3).Value = "1" 
     End If 
    Next 

'Step 3: Filter using the helper column, hide the helper column and 3 other columns, copy(offset removes header row), paste to sheet3 lastrow +1 
    With Range("A1").CurrentRegion 
     .AutoFilter Field:=3, Criteria1:="1" 
     .Columns("C:F").Hidden = True 
     .Offset(1).SpecialCells(xlVisible).Copy Worksheets("Sheet3").Cells(Rows.Count, 1).End(xlUp).Offset(1) 
    End With 

'Step 4: Clean up Sheet10, or macro will not work next time 
    With Sheet10 
     .AutoFilterMode = False 
     .Columns.Hidden = False 
     .Rows.Hidden = False 
     .Columns(3).Delete 
    End With 
関連する問題