2017-08-18 5 views
0

ダイナミック(常に変化する)スプレッドシートの列から別のスプレッドシートにデータをコピーしようとしています。オリジナルには必要のないデータもありますので、削除する必要があります。コピー&ペーストの部分は簡単ですが、記録して実行するとエラーが発生します。ダイナミックレンジからデータをコピー

Sub BOS() 

Sheets("BOX").Select 
Range("N17").Select 
Range(Selection, Selection.End(xlDown)).Select 
Range(Selection, Selection.End(xlDown)).Select 
Range(Selection, Selection.End(xlDown)).Select 
Selection.Copy 
Sheets("Sheet2").Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
Selection.SpecialCells(xlCellTypeBlanks).Select 
Application.CutCopyMode = False 
Selection.EntireRow.Delete 
ActiveSheet.Range("$A$3:$S$61").AutoFilter Field:=1, Criteria1:=Array("NA", "These will be listed in the FDO Report- see notes.", "will be included in the FDO Report"), Operator:=xlFilterValues 
Rows("6:52").Select 
Selection.Delete Shift:=xlUp 
ActiveSheet.Range("$A$3:$S$56").AutoFilter Field:=1 
Range("L25").Select 
End Sub 

エラーのスクリーンショット:enter image description here

+0

のStackOverflowへようこそこんにちは、:これで

Selection.SpecialCells(xlCellTypeBlanks).Select Application.CutCopyMode = False Selection.EntireRow.Delete 

:大幅に周りのあまりのコードを変更することなく、最も簡単な解決策は、これらの行を置き換えることであろう。まず、説明の両方の画像にコードが表示されるので、エラーの内容を実際には知ることはできません。あなたのコードを説明に入れることができれば、人がタイプし直すのではなく、コピーする方が簡単になります(記述で書式を設定する方法がわからない場合は、誰かがあなたのためにそれを行うと確信しています)。記録されたコードよりもはるかに効率的な答えを用意してください。ただVBAを始めるのであれば、それを理解するためにおそらくあなたの部分について何らかの調査が行われます – Zac

答えて

0

は、それがどんな空白のセルを見つけていないので、それはerroringだ私には思えます。

Application.CutCopyMode = False 

If Application.WorksheetFunction.CountBlank(Selection) > 0 Then 
    Selection.SpecialCells(xlCellTypeBlanks).Select 
    Selection.EntireRow.Delete 
End If 
0
Sub BOS() 
    With Sheets("BOX") 
     .Range(.Range("N17"), .Range("N17").End(xlDown)).Copy 
    End With 

    Sheets("Sheet2").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
    Application.CutCopyMode = False 

    On Error Resume Next 
     Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete 
    On Error GoTo 0 

    Range("$A$3:$S$61").AutoFilter Field:=1, Criteria1:=Array("NA", "These will be listed in the FDO Report- see notes.", "will be included in the FDO Report"), Operator:=xlFilterValues 
    Rows("6:52").Delete Shift:=xlUp 
    Range("$A$3:$S$56").AutoFilter Field:=1 
End Sub 
+0

最後にあなたの提案を考えてくれてありがとう。 – Heather

関連する問題