2017-03-20 7 views
0

列Aのすべてのセルを1つずつ読み込み、セルに特定のテキストが含まれるまで、行全体をコピーして別のワークシートに貼り付けるコードがあります。 。コード以下を参照してください:VBAで条件が満たされたときに全体行が選択されていない

Public Sub CiscoPrimeReport() 
Dim rowCounter As Long 
Dim colCounter As Long 
rowCounter = 9 
colCounter = 1 

MsgBox ("Please do the following before pressing the OK BUtton on this Popup Window!!:" & vbNewLine & vbNewLine & _ 
    "1. Open the CISCO PRIME AP Report you want to use" & vbNewLine & _ 
    "2. Select all the data (Ctrl + A)" & vbNewLine & _ 
    "3. Copy ALL the content (Ctrl + C)" & vbNewLine & _ 
    "4. NOW YOU CAN PRESS THE OK BUTTON!") 


Application.DisplayAlerts = False 
Call createCiscoSheet 


    With ThisWorkbook.Sheets("Cisco Raw") 
     .Range("A1").PasteSpecial (xlPasteValues) 

     Do While rowCounter < 2200 
      If Cells(rowCounter, colCounter).Value <> "AP Statistics Summary" Then 
       ThisWorkbook.ActiveSheet.Range("rowCounter:colCounter").EntireRow.Copy 

       With ThisWorkbook.Sheets("Throughput Per AP") 
        .Range("A2").PasteSpecial (xlPasteValues) 
       End With 
      End If 
      rowCounter = rowCounter + 1 
     Loop 

    End With 

End Sub 

コードは、私は、この行に到達するまで正常に動作:アプリケーション定義またはオブジェクト定義のエラー:

ThisWorkbook.ActiveSheet.Range("rowCounter:colCounter").EntireRow.Copy 

私は、実行時エラー1004を取得します。

Do Whileループを使用しているかどうかわからないので、代わりにForループを使用するか、コード内に何か不足している場合は使用してください。

答えて

4

VBA変数は引用符と連結外にする必要があります:

Range(rowCounter & ":" & colCounter) 

しかし、それは何でもrowCounterに行1(colCounter)からすべての行をコピーしますと、私は現在それはあなたが望むものであるとは思いません。

私はしたいと思います

ThisWorkbook.ActiveSheet.Rows(rowCounter).Copy 

また、あなたが唯一の値は、その後完全にクリップボードをスキップして直接値を代入したい場合:

 If Cells(rowCounter, colCounter).Value <> "AP Statistics Summary" Then 
      ThisWorkbook.Sheets("Throughput Per AP").Rows(2).Value = ThisWorkbook.ActiveSheet.Rows(rowCounter).Value     
     End If 
     rowCounter = rowCounter + 1 
+1

'行(2)'で '2' (または元の '.Range(" A2 ")')はおそらく**ハードコードされた数字ではなく変数にする必要がありますが、希望すればOPでうまく修正できます。 – YowE3K

+1

@ YowE3Kうん、私は同意するが、私はすでに一つのことを想定していた。私はOPが最初の仮定を確認してから次のものを助けるのを待つつもりでした。 –

+0

@ScottCranerありがとう!問題を修正し、また、目標シート上で1つずつ増加する変数を実装し、オフセット関数を使用して、条件が満たされるたびにセルを移動させました。 –

関連する問題