私は以下を試しましたが、うまくいきません。タグは、アクティブ シートの既存のセル範囲を更新するように機能します。
Sheets("Sheet2").Range("D7").Interior.ColorIndex = 38
誰にも解決策はありますか?
Googleで検索してみましたが、アクティブなシートの色を変更する方法しか見つからないようです...
編集: 別のシートの色を変更する必要があります!
あなたが試した正確なコード:
Sheets("Sheet2").Range("D7").Interior.ColorIndex = 38
あなたが望むように正確に動作します。Excel 2010 の新しいブックと既存のブックの両方で試してみたところ、完全に機能しました。
問題がコードの別の場所にあるか、ワークブックの競合が発生していると思われます。 Workbook
、Worksheet
、およびRange
は、現在アクティブであると想定される前のレベルが省略されている場合、すべて機能します。
したがって、たとえば次のようにRange("D7").Interior.ColorIndex = 38
想定されます。
ActiveSheet.Range("D7").Interior.ColorIndex = 38
同様に、Sheet("Sheet2").Range("D7").Interior.ColorIndex = 38
実際には
ActiveWorkbook.Sheet("Sheet2").Range("D7").Interior.ColorIndex = 38
したがって、別のブックを開いていて、そのブックがアクティブである場合、実際にはそのブックのシート 2 のセル D7 の内部色を設定していたことになります。
この問題が発生する可能性がある場合は、コードが 3 つすべてに固有であることを常に確認する必要があります。つまり、次のことを意味します。
ThisWorkbook.Sheet("Sheet2").Range("D7").Interior.ColorIndex = 38
そして、これは実際に問題のコードを含むワークブックの Sheet2 のセル D7 の内部色を常に設定します。
コードが機能していて、間違った Sheet2 で背景色を設定していた可能性があります。
入力は少し不明確ですが、必要だと思います:ActiveSheet.Range("D7").Interior.ColorIndex = 38
あなたのコードは正しく動作します。シート インデックスでシート名を変更しました。
Sheets(2).Range("D7").Interior.ColorIndex = 38
よろしくお願いします
モハメド Q.