2016-03-30 10 views
0

何か不足しているような気がします。 ID、名前、ステータスがヘッダーであるテーブルがあります。 表のヘッダーはB2から始まり、データはB3から始まります 表は動的で、別のワークブックのVBAコードによって生成されます。 フィルタリングされたデータがあるかもしれませんが、テーブルに隙間がありません。VBAが自分のデータの最後の行を選択していません

名前列(C)でユーザーを選択することがあります。 ボタンをクリックすると、最後のレコードが表示されます。

私はこれを達成するための方法がたくさんあるが、私はそれらのいずれかを動作させるように見えることができないと私は理由を理解できない。

ここに私の現在のコードがありますが、UsedRange、CurrentRegion、テーブル名を試してみました。

Sub MoveToLastRow() 

    Dim LastRow As Long 

    LastRow = ActiveSheet.Cells(Rows.Count, "C").End(x1Up).Row 

End Sub 

ボタンをクリックするか、名前を選択してコードをステップ実行しようとしましたが、何もしません。

ありがとうございます。

Sub MoveToLastRow() 
    ActiveSheet.Range("C" & Rows.Count).End(xlUp).Select 
End Sub 

:あなたが列「C」のデータと最後のセルを選択するには、次の簡単なVBAのコードスニペットを使用することができ 〜ドン

+1

何をする予定ですか?最後の行番号を変数に代入していますが、実際には何も実行していません。 –

+0

Activesheet.Cellsは引数として2つの数値を必要とします。あなたは数字と "C"を与えます。 – Vityata

+0

@Vityataそれは単に真実ではありません - コードを試してみてください。 'Cells()'はコレクションオブジェクトであり、インデックスまたはキー(数字または文字)を使用して要素にアクセスできます –

答えて

1

は、元のコードでは、構文エラーが含まれていますしたがって、動作しません。End(x1Up).RowはEnd(xlUp)と書かれています。 (すなわち、コラム「C」のデータとの最後のセルを選択する)同じアクションを実行する修正コードスニペットこれは役立つかもしれ

Sub MoveToLastRow() 
    Dim LastRow As Long 
    LastRow = ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row 
    ActiveSheet.Range("C" & LastRow).Select 
End Sub 

希望を次に示します。

1

追加:

Application.GoTo Range("C" & LastRow) 

あなたのコードの末尾には、そのセルにカーソル移動を行います。

0

コードの変更.End(x1Up).End(xlUp)コードの先頭にOption Explicitを使用すると、VBAが変数であると考えられることがわかります。

関連する問題