2017-03-14 13 views
0

私はvbaを習得しました。空のセル範囲を見つけるために、2つの条件でifブロックを使用しています。これはブロックがforループの中にある場合です。今、どの条件が満足されているのか、このifブロックによって選択されているセル範囲は何かをキャプチャする必要があります。私はこの範囲をEverytimeで捕捉し、forループの要素ごとにグラフを生成する必要があります。以下は、ifブロック構文が使用しています。ifブロックとその範囲で満たされた条件を見つける

If worksheetfunction.counta(cells) = 0 
then 
range("a1").select 
else 
lastrow = activesheet.range("A10000").end(xlup).row 
Cells(lastrow+1,1).pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks:=false, transpose:=false 
End if 

すでに値のセットがコピーされており、if条件に基づいて、A1またはifブロックの2番目の条件に貼り付けられます。だから私はこの条件の後に選択されている範囲を格納する変数が必要になります。

私はforループ内にif条件があり、そのループに5つの値があるとします。だから私は "ラストロー"の4つの異なる値に終わるでしょう。しかし、条件が選択されていれば、すべての範囲を取得する必要があります。

これに関するお問い合わせは高く評価されます。前もって感謝します!!

+0

'LASTROW = activesheet.range( "A10000")終了(xlup).row' LASTROW =範囲( "A10000" 'と同じです).end(xlup).row ' – user3598756

答えて

0

あなたはこのような何かの後に次のようになります。

Dim capturedRange As Range ' <--| declare a Range variable to store the captured range 

If WorksheetFunction.CountA(Columns(1)) = 0 Then ' <--| if no values in column A 
    Set capturedRange = Range("a1") ' <--| set 'capturedRange' to cell A1 
Else ' <--| otherwise 
    Set capturedRange = Range("A10000").End(xlUp).Offset(1) ' <--| set 'capturedRange' to column A first empty cell after last not empty one 
    capturedRange.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=False 
End If 
+0

@viveksubramanian、このコードはあなたのために機能しますか? – user3598756

+0

はい、このコードは機能しました。ありがとうございました。しかし、私はまだその範囲に貼り付けられたデータからグラフを作成しています。試して更新します。 –

+0

あなたは大歓迎です。あなたは受け入れられたとして回答をマークしたいかもしれません。ありがとうございました! – user3598756

関連する問題