1

VBA を使用して Excel シートのテーブル境界を取得しようとしています。私はすでに C# を使用してこれを行っていますが、今度はそのコードを VBA に変換する必要があります。

1 つの問題は、構文が非常に異なっているように見えるため、コードが似ていないか、単に同じことを行っているだけであるということです。テーブルの寸法を把握するのにかなり近づいていると思いますが、このRun-time error '6': Overflowメッセージが表示されます。

コードは次のとおりです。

Dim currentRow As Integer
Dim totalRow As Integer
Dim column As Integer

currentRow = 2

Do
ActiveCell.Offset(1, 0).Select
totalRow = totalRow + 1
Loop Until IsEmpty(ActiveCell.Offset(0, 1)) = False

エラーは、Do loop. VB が遅いという別のフォーラムの回答を読みました。エラーの可能性は、Do loop速度が速すぎてオーバーフローが発生したことです。その場合、私はそれを解決する方法がまったくわかりません。

オーバーフローの問題を解決する方法はありますか?

4

2 に答える 2

2

ループする代わりに、Range の .End メソッドを使用して、最初の空のセルを見つけます。

于 2011-02-16T22:42:18.040 に答える
0

UsedRange を参照してください。試す

 Dim totalRow As Long

UsedRange: http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.usedrange(VS.80).aspx
データ型: http://msdn.microsoft.com/en -us/library/aa164754(v=office.10).aspx

于 2011-02-16T22:41:03.013 に答える