2016-12-08 7 views
-2

私はワークブック1に、プロジェクトの全体的な状況を考慮して1つのセルの内部色を更新するマクロを持っている2つのワークブックを持っています。ワークブック1のセルの色をワークブック2に反映させるにはどうすればよいですか?

ワークブック2は、すべてのプロジェクトの概要として意図されており、私はそれが1つのセルの色を反映する必要がワークブック1

VBAにはまだかなり新しいイム...どのように私はやって行くだろうそれ ?

ありがとうございました!

答えて

0
Sub copyColorOfCell() 

    Dim workbook1, workbook2 As Workbook 
    Set workbook1 = Workbooks("workbookName1.xlsx") 
    Set workbook2 = Workbooks("workbookName2.xlsx") 

    Dim worksheet1, worksheet2 As Worksheet 
    Set worksheet1 = workbook1.Sheets("worksheetName") 
    Set worksheet2 = workbook2.Sheets("worksheetName") 

    Dim cell1, cell2 As Range 
    Set cell1 = worksheet1.Range("A1") 
    Set cell2 = worksheet2.Range("A1") 

    cell2.Interior.Color = cell1.Interior.Color 

End Sub 

ブックとワークシートの名前(インデックスも使用できます)を置き換えて、必要なセルを指定します。

+0

'workbook1'と' worksheet1'を 'Variant'として宣言しました。それぞれワークブックとワークシートとして宣言するには、「Dim workbook1 As Workbook、Workbook2 As Workbook」と「Dim worksheet1 As Worksheet、Worksheet2 As Worksheet」を使用する必要があります。 – YowE3K

+0

あなたは正しいです、私はこれについて忘れました。彼らをVariantsとして持つことの意義を明確にしてください。 –

+0

'Variants'が必要でないときに私の主な苦情は、デバッグが難しいコードに問題を隠すことがあるということです。 'Option Explicit'を持っていないようなビットです。期待していないことが起こります。 '' Dim v、r As Range'' Set r = Range( "A1") '' Set v = Range( "A1") '' Debug.Print r.Address' 'Debug.Print v.Addressにアクセスしようとするまでクラッシュすることはありません。v.Address' - すべてうまくいきますが、Set v = Range( "A1") 'を' v = Range( "A1" 'プロパティを' Debug.Print'行に追加します。 – YowE3K

関連する問題