2017-11-28 12 views
0
 Sub arraytestingwow() 
      Dim countertest As Integer 
      Dim countermax As Integer 
      Dim arraysuper(1 To 6, 0 To 4) As Variant 

      countermax = 6 

      For countertest = 1 To countermax 

        arraysuper(countertest, 0) = Range("a1").Offset(countertest, 0) 
        arraysuper(countertest, 1) = Range("b1").Offset(countertest, 0) 
        arraysuper(countertest, 2) = Range("c1").Offset(countertest, 0) 
        arraysuper(countertest, 3) = Range("d1").Offset(countertest, 0) 
        arraysuper(countertest, 4) = Range("e1").Offset(countertest, 0) 

      Next 

      Range("G1:K" & countermax - 1).Value = arraysuper 

      'arraysuper.interior.colorindex = 3?????? Set all values not blank with color 
     End Sub 

私の行にはヘッダーがあります。 空でない配列のすべての値に色が付くようにするにはどうすればよいですか? 100,000以上の行があるので、私はそれを行う最良の方法を探しています(そうでなければ、if文でループを使用します)。配列内のすべての値をカラーで表示する

+0

正確にループに問題がありますか? – Blorgbeard

+1

条件付き書式設定? – sous2817

+0

複数の色があるため条件付き書式を使用できません。各色は異なるソースである – alphatrader

答えて

0

すべてのセルを色付けしてからブランクを拭くことができます。ここでは、セルのブロックの空白を取得する方法のデモです。最初にトッププロシージャを実行して、いくつかの穴をあけてシートにデータを書き込んでください。

Sub SetUpSwissCheeseData_RunOnceToBegin() 

    Dim ws As Excel.Worksheet 
    Set ws = ActiveSheet 

    Dim rng As Excel.Range 
    Set rng = ws.Range(ws.Cells(1, 1), ws.Cells(3, 3)) 

    Dim vData As Variant 
    vData = Application.Evaluate("{1,2,3;4,5,6;7,8,9}") 

    rng.Value2 = vData 
    rng.Cells(1, 2).Value = Null 
    rng.Cells(2, 1).Value = Null 
    rng.Cells(3, 3).Value = Null 

End Sub 

Sub GetBlanks() 

    Dim ws As Excel.Worksheet 
    Set ws = ActiveSheet 

    Dim rng As Excel.Range 
    Set rng = ws.Range(ws.Cells(1, 1), ws.Cells(3, 3)) 

    Dim rngBlanks As Excel.Range 
    Set rngBlanks = rng.SpecialCells(xlCellTypeBlanks) 

    Debug.Assert rngBlanks.Address = "$B$1,$A$2,$C$3" 
    Stop 


End Sub 
関連する問題