2

ユーザーの呼び出しに応じて単純な行の挿入と削除を実行するVBAコードを備えた非常に単純なスプレッドシートアプリケーションがあります。これは、Excelの経験がない人が使用することを目的とした、高度にフォーマットされたスプレッドシートです。挿入と削除のコードは問題ありません。

シートは15行を使用し、このポイントより下のすべての行が非表示になっています。ただし、完全な行を削除すると、後続の各行は標準で上にシフトし、「新しい」空白の行15が残ります。この動作を無効にして、空白の行を表示しないようにします。

簡単かもしれませんか?この動作を防ぐためのオプションは何でしょうか。これが不可能な場合は、シートの「最後に表示された」行のIDを取得して、手動で非表示にするためのヒントはありますか?

乾杯

4

3 に答える 3

1

これをニーズに合わせて調整する必要があるかもしれませんが、これは機能するはずです。

Sub GetLastVisibleCell()

Dim rng As Range

Set rng = ActiveSheet.Columns(1).SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeLastCell)

If rng = vbNullString Then rng.EntireRow.Hidden = True


End Sub
于 2012-10-09T13:31:57.477 に答える
1

行を削除する代わりに、次のようにクリアします。

msdnはの例を示します

Worksheets("Sheet1").Range("A1:G37").ClearContents
于 2012-10-09T13:16:35.943 に答える
0

最後に表示される行は、end(xlup)構文で返すこともできます。列Aに空でない各行のデータがあると仮定します。

Sub GetLastVisibleCell()

Dim rng As Range

Set rng = cells(rows.count,1).end(xlup)
rng.EntireRow.Hidden = True


End Sub
于 2012-10-09T17:01:28.613 に答える