2017-08-08 8 views
1

私は、各セルが特定の色の条件付き書式を持つユニットタイプの住宅スタッキング計画を作成しています。 各単位の下に続く2つの表は、1平方メートルの大きさと$値を反映しています。範囲のセルの色を別の色にリンクするExcelコード

私はを次の表に反映させる必要があります。

私はダイナミックな解決策が必要で、vbaを避けることを好むでしょう(私は堪能ではないので)。しかし、必要に応じて使用します。前もって感謝します!

Find Image HERE

+0

あなたの質問は私には不明です。サンプル画像を提供できますか? – CMArg

+0

スタティックは簡単ですが、フォーマットをコピーするだけです。ただし、この動的な作業を行うには、VBAが必要であり、条件付き書式も第2のテーブルにコピーする必要があります。 – Luuklag

+0

条件付き書式設定を使用してこれを行うことは可能ですが、スプレッドシートを見ればアドバイスを受けることができます。 –

答えて

1

Conditional formatting

私のテーブルに注意し、セルC4から始まりますが、あなたは別の場所にあり、それに応じて調整する必要があります。 「適用対象」セクションに$記号が含まれていないことを確認してください。

この形式をコピーして2番目のテーブルに貼り付けてください。

最後に、条件付き書式の式を編集して、FIRSTテーブルの開始セルを指すようにします。書式設定は、第二のテーブル「に適用されます」は最初のテーブル内の値を式で参照していること

2nd Table Conditional formatting

注:それは次のようになります。あなたがする必要がある場合は、他のテーブルのためにこれを繰り返すことができ

Final result

結果がこれです。 (!)

あなたはExcel 2003で作業しているとして、次の手順に従います。

  1. が第二の表のセルを選択します。
  2. メニューで、[書式] - [条件付き書式設定]を選択します。
  3. 条件付き書式設定ボックスで式がを選択します。
  4. テキストボックスに、FIRSTテーブルのセル参照を入力します(例:C4 = "4+")。$記号は入力しないでください。
  5. [書式]ボタンをクリックし、最初の表に一致する背景塗りを選択します。
  6. [追加]ボタンをクリックして同様の方法で他の条件を追加します。
+0

それでも動作します。最後に更新を追加します。 –

+0

条件や書式が異なる範囲にあることはわかりませんでした。 +1 – CMArg

+0

すごい!それは不思議に過ぎません。ありがとう! –

0

あなたはカラーコード値(B21:B26)を変更した場合(2番目のテーブルにマッチする)2 roomsから2に、次のようにトリックを行う必要があります。基本的に、このコードは条件付き書式設定を使用していません。条件付き書式設定から色を取得することは、面倒で面倒な(google "Excel vbaは色付きの条件付き書式を見つける")ことができます。代わりに、現在のコードでは、カラーコードセルの色を読み取り、それを他の2つの範囲に適用します。このような最初のテーブルの上に通常通りあなたの条件付き書式を設定し

Private Sub BckgndColor() 
    Dim ColorCodeRange As Range 
    Dim NoOfRooms As Range 
    Dim CellColorIndex As Integer 
    Dim c As Range 
    Dim d As Object 

    Set ColorCodeRange = Worksheets("Sheet1").Range("B21:B26") 
    Set d = CreateObject("scripting.dictionary") 
    'Add the pairs (value, color) to dictionary 
    For Each c In ColorCodeRange.Cells 
     d.Add c.Value, c.Interior.ColorIndex 
    Next 

    Set NoOfRooms = Worksheets("Sheet1").Range("M25:V36") 'Here the range of Table 2 (M25:V36 in your example) 
    'Scan range, and assign color 
    For Each c In NoOfRooms.Cells 
     If d.Exists(c.Value) Then 
      c.Interior.ColorIndex = d(c.Value) 
      c.Offset(16, 0).Interior.ColorIndex = d(c.Value) 'If Table 3 is always 16 rows down, this shoud work 
     End If 
    Next 

    Set d = Nothing 
End Sub 
+0

ありがとうございます、問題は条件付き書式でソートされました! –

関連する問題