自分のブックはどれ?

自動記録のコードの意味が理解できるようになって次に考えることは、そのマクロはどのブックのどのシートに作用するものなのかです。



該当のシートを開いてからマクロを記録すると、
自動記録のコードのサンプル
このようなコードが採取でき、この後、コードの意味を解釈して整理したり、変更したりして所望の機能に仕上げていくのですが、そもそも「Range」から始まる記述はその時点でアクティブになっているシートに対しての動作になることはお解りだと思います。
汎用的なマクロであれば、あえて明示せずにアクティブになっているシートに対して作用させることもありますが、コードを書き込んだ「その」ブックの特定なシートに作用させるにはどうするのでしょうか。
Range("A2")」の「A2」は住所で言えば「番地」です。
郵便を出すのに通常は「番地」だけ書いても届かないのですが、Excelは「Range("A2")」については「今いる町の番地」として処理してしまいます。
Excelは同時期に複数のワークブックを開くことができます。さらに1つのワークブックに対して複数のウィンドウが持てますが、ウィンドウの話の持ち出すとややこしくなりますからウィンドウの件は除外しますが、それでも1つのワークブックには複数のワークシートが持てます。
つまり、
Excel > ワークブック > ワークシート > セル
という関係になります。
これらを明示すれば間違ったシートに対してマクロが作用することはありません。

※「番地」の話は「番地だけ書いて郵便は届くか(セル指定の話)」でも説明しています。

では、ワークブックやワークシートを明示するにはどうしたら良いでしょう。
そのまま書いてしまうと、ワークブックBook1.xlsのワークシートSheet1のセルA2であれば、

    Workbooks("Book1.xls").Worksheets("Sheet1").Range("A2")
となります。「どのワークブック」の「どのワークシート」の「どのセル」を明記しているわけです。
ですが、同じシートに対して何度も参照や更新がある場合は、この長い記述では大変です。

この辺まで理解できたら、「変数」を使って見ましょう。
「変数」と言っても、数字や文字列ではありません。ワークブックやワークシートの「オブジェクト(正確にはオブジェクトの参照)」です。
通常の「変数」は、

    Dim lngNo As Long                                               ' 番号
    lngNo = 1000
このように「=」だけで値の代入ができます。
ですが、オブジェクト変数の場合は、

    Dim objWbk As Workbook                                          ' Book1
    Set objWbk = Workbooks("Book1.xls")
このようにSetステートメントを使う必要があります。
ワークブックBook1.xlsのワークシートSheet1は、

    Dim objWbk As Workbook                                          ' Book1
    Dim objSh1 As Worksheet                                         ' Sheet1
    Set objWbk = Workbooks("Book1.xls")
    Set objSh1 = objWbk.Worksheets("Sheet1")
となります。これ以降そのシートのセル参照は、

    objSh1.Range("A2")
で良いのです。

ですが、ワークブックはファイル名を変更されると変わってしまいます。
マクロ自身が登録されている「自分自身」のブックは、

    ThisWorkbook
なのです。(もう以前の項目で使っています。)
これに対して、現在アクティブなワークブックは、

    ActiveWorkbook
です。
例えば、自分のブック内でSheet1からSheet2A2セルの内容を転記するなら、

    With ThisWorkbook
        .Worksheets("Sheet2").Range("A2").Value = .Worksheets("Sheet1").Range("A2").Value
    End With
とか、

    Dim objWbk As Workbook                                          ' Book1
    Dim objSh1 As Worksheet                                         ' Sheet1
    Dim objSh2 As Worksheet                                         ' Sheet2
    Set objWbk = ThisWorkbook
    Set objSh1 = objWbk.Worksheets("Sheet1")
    Set objSh2 = objWbk.Worksheets("Sheet2")
    objSh2.Range("A2").Value = objSh1.Range("A2").Value
と記述することになります。
転記項目が1件だけなら前者でも良いですが、複数の項目があるなら後者で記述することをお勧めします。 後からの仕様変更等で転記項目が増えた場合でも簡単に対応できることが解ると思います。