2011-07-29 8 views
1
   Range("H25") 

上記の文でVBAを使用して行を削除するには、私はH定数を入れた行をインクリメントするにはどうすればよいH column.Nowの25行私が知りたい事がある、 を選択しますか? ええ私はGoogleの$ h24でこれらを見てきましたが、列は一定のままで、行は増分し続けます。行をインクリメントし、EXCEL

しかし、私はそれをH25から最後まで増やす必要があります。どこでH列が終了するのかわかりません。どうすればいいですか?VBAを使って変数を宣言し、それを増分することはできますか?

I was thinkin to put it like these Range("Hvariablename")? 

私が行う必要があり、実際の作業は、私は最後までH25から行をチェックして、私のVBAにそれらの値を取得し、rows.Andを増分で右のそれそれらに戻ってイムstuckedし、いくつかのcalcutaionsをしなければならないです誰でも私にマクロを知らせてVBA自体から行を削除することができますか?ありがとうございました

答えて

1

この範囲がどのようになっているかについて、さらに詳しく説明できると思います。 「H25から最後まで行をチェックしなければならない」と言ったら、ここでは何が終わりですか?

手動で数式をコピーしている場合は、G列の値を持つ最後の行まで自動的に移動します。私は25行下のH行にすでにいくつかの値があると仮定していません。これは本当ですか?

最後の行にG列の値を使用する場合は、Selection.AutoFillを使用できます。

既にH欄に値があり、それらを通過したい場合は、ダイナミックレンジを定義し、VBAでループすることができます。 =OFFSET(Sheet1!$H$25,0,0,COUNTA(Sheet1!$H:$H),1)

(あなたは明らかに、あなたのニーズに応じて、それを適応させる必要があるかもしれません)この式に基づいて、新しい範囲を、追加して、VBAで、それを通過:ダイナミックレンジを定義するには

時間で

Sub TEST() 

    Dim oCell As Excel.Range 
    Dim oRange As Excel.Range 

    Set oRange = [TestRange] 

    For Each oCell In oRange 

     Debug.Print oCell.VALUE 

    Next oCell 

End Sub 

:Excelで行全体を削除するには、あなたが

Sheets(1).Rows(25).EntireRow.Delete 
を使用します
1

Do While()ループは、必要なもののように聞こえます。

Do While(cells(row,col)<>"") 
     'Some code to be executed on cell(row,col) 
Loop 

それとも、forループ

と同じことを行うとlastRow=Cells("H24").End(xlDown).Rowを使用して最後のセルを見つけることができます。 (Ctrl + Downを押すのと同じことです。したがって、セルH25と終端の間に空のセルがある場合は、そのことを考慮する必要があります)。

いずれの方法でも、A1スタイルの代わりにセルを移動するためのR1C1セル参照スタイルを使用しています。文字列を移動することは、番号付きの列よりもはるかに困難です。また、Excel 2007の「最後の行」は非常に高い数値で、最後の重要なセルまでループするよりも多くの時間がかかるまで、すべての方法でループしています。

私はそれが正しい軌道にあることを望みます。

関連する問題