対象ファイルのデータが入っているセル範囲の取得したいです。

以下で選択できましたが一つ問題があります。

 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  

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

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

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/08/17 20:12:50
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント300pt

こんな感じでしょうか。

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
id:gocnia3

連絡遅くなり申し訳ありません。
内容確認し、動かすことができました!
ありがとうございます

2015/08/17 20:11:03

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません