• 締切済み

最終行の取得について

今回、最終行を習得するにあたって壁にぶちあたってしまいました。。 まず、元dataがありましてそれを B1セル=IF($A1=0,"",A1)’下方向にペースト といったように数式を用いて空白にしたところ、 それを空白としてひらい出すことができず、別のシートに値のみ貼り付けを行っても、うまくいきません。現状このようなコードで最終行をとらえれません、何かいい方法がありますでしょうか? Range("B1").End(xlDown).Row

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 VBAでしたら、こんな簡単なコードでよいのでは? Sub TestA() Dim c As Range  Set c = ActiveSheet.Columns(2).Find("*", , xlValues, 1, 1, 2)  If Not c Is Nothing Then   MsgBox c.Row  End If  Set c = Nothing End Sub '--------------------------- Sub TestB() Dim v As Variant   v = Evaluate("MAX((B1:B50<>"""")*ROW(B1:B50))")   If Not IsError(v) Then    MsgBox v   End If End Sub *VBAでは、配列出力のない関数は、配列確定は必要ありません。

  • myRange
  • ベストアンサー率71% (339/472)
回答No.3

  VBAでやるなら次のように。。   未使用の列(例えば、G列)を作業列として使う方法。 B列の値をG列に代入(値のコピーではない)して G列で最終行を求める。 '----------------------------------  Sub Test()  Dim LastRow As Long  Range("G:G").Value = Range("B:B").Value  LastRow = Cells(Rows.Count, "G").End(xlUp).Row  MsgBox "最終データ行: " & LastRow End Sub '-------------------------------------- 処理が終わったら、   Range("G:G").ClearContents これでG列の値を消しておく。   以上ここまで。  

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

「元data」が50行目まであるとして、同じシートの任意のセルに以下の式を貼り付けてください  =MAX(INDEX((B1:B50<>"")*ROW(B1:B50),)) VBAでもできますが、関数の方が楽ではありませんか?

hidesan_31
質問者

補足

最終行を習得できました^^ なるほど~と思いました VBAで書きたかった理由はコードが存在していて、そこに+αとして 最終行の記述をしたかったのです。関数でもできるとわかりましたが、 この最終行を変数(Le)に代入するには、   Le=MAX(INDEX((B1:B50<>"")*ROW(B1:B50),)) ではないですよね??

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

これはVBAの質問か、関数の質問かまず表題で明記すべきでしょう。 質問には関数の話も出てくるし。 A列A1に=IF(B1="","",1) と入れてA10まで式複写しました。 たまたまB1:B10が空白なのでA1:A10は空白に見えています。 標準モジュールに Sub test02() d = Range("a65536").End(xlUp).Row MsgBox d End Sub を入れて実行すると、10と返りました。 これが質問者に都合が悪いと言うことですか。

hidesan_31
質問者

補足

まず、現状こちらの環境で空白に見えたところが、 最終列として認識されず、 数式が入ってる最終列としての認識をされてしまうというのが、 今回の問題でございます。 当方の環境下はosXP SP3  エクセル2007 2003互換モードでの作成でございます。 現在、VBAの作成をしてますが、コード記述が未熟なためうまくいきません。 回答者様の10が返ったのはA10まで数式が入ってるということなので そのためかと。。私のしたいのは上記の場合ですと、A1~最終列まで数式が入ってると仮定しまして その数式で ””ブランクセルを返してる最終部分を見たいわけです。 部分を最終列として認識したいのです。 ぜひご教授ください。

関連するQ&A