人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

対象ファイルのデータが入っているセル範囲の取得したいです。
以下で選択できましたが一つ問題があります。

MaxRow = Workbooks("選択対象ブック").Worksheets("選択対象シート").Cells.SpecialCells(xlLastCell).Row
MaxCol = Workbooks("選択対象ブック").Worksheets("選択対象シート").Cells.SpecialCells(xlLastCell).Column


選択対象シートは以下のような作りとなっており、上の式で選択すると【7行、C列】を範囲選択しますが、
項番行はデータがないため、項番を除く、【3行、C列】を範囲選択させたいです。

A列 B列 C列
項番 果物 備考
1行 1 ぶどう
2行 2 バナナ
3行 3 りんご あまい
4行 4
5行 5
6行 6
7行 7

また、最終的には項番も含めてコピーして、別のシートに貼り付ける処理を行うので、いったん項番を削除するのは
できません。(項番にもデータが入っている可能性があるため)

よろしくお願いいたします。


●質問者: gocnia3
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●300ポイント ベストアンサー

こんな感じでしょうか。

Sub 最後のセルを選択()

 Set s = Workbooks("選択対象ブック").Worksheets("選択対象シート")

  ' 対象の列の範囲
 col_min = 2  ' B列
 col_max = s.Cells.SpecialCells(xlLastCell).Column

 Dim last_cell
 Set last_cell = Nothing
 For r = col_min To col_max
 Set c = s.Cells(Rows.Count, r).End(xlUp)
 If last_cell Is Nothing Then
 Set last_cell = c
 ElseIf last_cell.Row <= c.Row Then
 Set last_cell = c
 End If
 Next

  ' データが入ってる最後のセルを選択
 last_cell.Select

  ' 行と列を使うなら...
' maxrow = last_cell.Row
' maxcol = last_cell.Column

End Sub

 
A
B
C
11ぶどう 
22バナナ 
33りんごあまい
44メロン 
55  

こういう場合には、「メロン」(4行, B列)を選択するようにしてます。

空の「備考」(4行, C列)のセルを指したいのであれば、列の指定に col_max (.Cells.SpecialCells(xlLastCell).Column) を使ってください。

  ' データが入ってる最後のセルを選択
' last_cell.Select
 s.Cells(last_cell.Row, col_max).Select

gocnia3さんのコメント
連絡遅くなり申し訳ありません。 内容確認し、動かすことができました! ありがとうございます
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ