0

この質問は私が説明するのは少し難しいですが、誰かにとって何らかの形で理解できることを願っています. 現時点では、セルに範囲を設定するという点では、関数を追加する前に常に何らかの制限 (Range("A1:A10") など) を与えていましたが、より柔軟なマクロを作成したいと考えています。制限は、スプレッドシートの列に記録された最後のセル行に基づいています。問題で使用しているスプレッドシートは、毎週更新するデータベースにリンクされており、取得する行の範囲は、たとえば、ある日は 250 行、次の日は 300 行、時には 275 行に戻る場合があります。スプレッドシートを更新するたびに vba マクロの範囲制限を変更する必要がない、これを回避する簡単な方法があるはずです。私はそれがとても単純な解決策であると想像できますが、私がそれを読みすぎて自分自身をさらに混乱させずにこれを行う方法を理解することはできません. この場合、ここでループの形式を使用することを検討していますか?もしそうなら、どうすればいいですか?

4

1 に答える 1

0

最後の行を取得するには、次のようなことができます

Dim last_row as Integer, input_sheet as Worksheet, col_number as Integer
col_number = 1
Set input_sheet.Sheets(1) ' change it accordingly
last_row = input_sheet.Cells(input_sheet.Rows.Count, col_number).End(xlUp).Row

これが基本的に行うことは、ワークシートの列 A の最後の行を選択し、「Ctrl」+「上方向」のアクションを複製することです。したがって、最後の行になります。これは、必要に応じて適宜変更できます。

于 2012-10-08T09:27:27.373 に答える