0

これをいじって整理しようとした後、私は途方に暮れています。セル アドレスの CSV リストを返す C# 相互運用機能があります。この部分は問題なく動作します。これらのセルの色を赤に設定するメソッドがあります。

Worksheets(Worksheet).range(errorCells).Interior.Color = RGB(216, 80, 83)

errorCells は、次のようなデータを含む文字列です。

"O148,O389,O396,O397,O398,O399,O400,O401,O402,O403,O404,O405,O406,O407,O408,O409,O410"

私の問題は、errorCells の文字列が大きい場合 (約 56 要素)、Excel がスローすることです。

Run-time error '1004':
Application-defined or object-defined error

csv リストがメソッドに正しく渡されます。これは基本的に、一度に 1 つのセルを実行するのは効率が悪いため、パフォーマンスを向上させるために変更されました。

誰でもアイデアはありますか?

4

1 に答える 1

0

おそらく、別のアプローチを試すことができます。これらの 4 桁のエラー セル番号が何らかの形で [Row, Column] セル参照に対応すると仮定すると、次のように試すことができます。

Dim varSplit As Variant 
varSplit = Split(errorCells, ",") 'Read into an array each value to access

次に、For Each ループを使用して varSplit オブジェクトをループし、次のようにします。

  1. 各文字列を行部分と列部分に分割します
  2. 以下を使用して、色を付ける必要がある範囲にアクセスします。

    Cells(Row,Column).Interior.Color  = RGB(216, 80, 83)
    
于 2013-07-11T09:42:10.603 に答える