最終行の取得の定石コードは
Cells(最大行数,対象列).End(xlUp).Row
が定石です。なぜ上記コートなのかはExcelは最下位セルにカーソルを置き、Ctrlキーを押しながら、↑キーで、カーソルが最終行に移動します。つまり、この動きをVBAで再現したのが上記コードです。
ところで、Excelで扱える最大行数はExcelのバージョンで異なります。Excel2003までは約6.5万行。Eccel2007から104万行です。
・Excel2003以前 ⇒ 65536行
・Eccel2007以降 ⇒ 1048576行
つまり、下記のように定数を記載するのが、正しい記述になります。
Excel2003以前
Cells(65536,1).End(xlUp).Row
Eccel2007以降は 1048576行
Cells(1048576,1).End(xlUp).Row
しかしながら、上記のように定数を書かなくても、最大行数を取得する方法があります。下記コードで、対象ワークシートで扱える最大行数が取得出来ます。
ActivSheet.Rows.Count
ここでポイントですが、扱える最大行数は、Excelのバージョンで決まります。そして、どのワークシートでも扱える最大行数は共通です。つまり、今回のケースだと、ws1でもws2でも、1048576 が返ってきます。
今回のケースでは、1048576 の取得が目的なので、動作はします。
ただし、可読性、つまりバグを未然に防ぐ目的から、別々のワークシート指定は好ましくありません。質問者さんのように混乱しますので。おそらく、サイト作成者様は意図したコートではなく修正ミスかと思います。
なお、私ならこのコードは可読性優先で、下記のように記述します。
Dim lngLastRow As Long '最終行
Dim lngTargetRow As Long '対象行
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Worksheets("●●●")
Set ws2 = Worksheets("△△△")
lngLastRow = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row
For lngTargetRow = 2 To lngLastRow