次のコードの値を含む列Aの最後の行を見つけようとしています。
LastRow = DataWorksheet.Range("A:A").Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row
これは、最後の数行が除外される場合を除いて、ほとんどの場合に正常に機能します。たとえば、30行のデータがあるとします。行1〜10が表示され、11〜20が除外され、21〜30が表示されている場合、最後の行が正常に検出されます。30が返されます。すべてが表示され、行21〜30が除外されると、LastRowは1を返します。
行21〜30を除外する代わりに手動で非表示にすると、最後の行が20であることがわかります。
何が得られますか?最後の行がフィルタリングされている場合、どうすれば最後の行が何であるかを判断できますか?
編集:これで、LastRowが最後のフィルタリングされていない行を選択しているように見えます。これは、以前の動作からの明確な逸脱です。発生しているバグ/不整合をより適切に特定できるようになったら、この投稿を更新します。