私はExcel DNAを使ってExcel用のアドインを開発しました。入力として範囲を受け入れるUDFを宣言し、ExcelReference
をRange
にキャストし、の列挙子を使用して、List
のすべてのセル値を収集し、さらに処理し、別の範囲に出力を書き出します。UDFでフルカラー範囲を処理する方法は?
テストとして、列全体を関数(A:A
)に渡そうとしましたが、列挙子が最後の値の後に空のセルを列挙し続けるため、すべてが凍結しました。
完全列の範囲を検出し、空でないすべてのセルを高速に取得する方法はありますか?
今のところこのコードを使用していますが、上記のケースでは非常に遅いです。
Dim ue = inputRange.GetEnumerator
Dim L As New List(Of String)
Do
If ue.MoveNext Then
Dim c As Range = ue.Current
Dim V As String = c.FormulaLocal
If String.IsNullOrWhiteSpace(V) Then Continue Do
L.Add(V)
Else
Exit Do
End If
Loop
次の回避策を使用しますが、これを根本的に回避したいと考えています。
Dim ue = inputRange.GetEnumerator
Dim counter as integer=0
Dim L As New List(Of String)
Do
If counter>10 Then Exit Do
If ue.MoveNext Then
Dim c As Range = ue.Current
Dim V As String = c.FormulaLocal
If String.IsNullOrWhiteSpace(V.Trim) Then
counter = counter + 1
Continue Do
End If
L.Add(V)
Else
Exit Do
End If
Loop
ありがとう!私はその機能をアップグレードするためにそのGistを使用しました:私はすでに 'IsMacroType'と' AllowReference'の両方を使用していたので、コードは完全に収まりました! :D – beppe9000