|
>MaxRow = ActiveSheet.UsedRange.Rows(.Rows.Count).Row
.Rows.Countの『.』の前が指定されていませんからエラーになっています。
MaxRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
としなければいけません。
そこでActiveSheet.UsedRangeを何度も指定せずに、Withステートメントでくくって
With ActiveSheet.UsedRange
MaxRow = .Rows(.Rows.Count).Row
End With
と書くわけです。
>rowsとrowの違い..
rowsはrowの複数形ですね。
Rows(1).Row でRowsの1行目の行番号を取得します。
Rows(n).Row でRowsのn行目。
目的が、UsedRangeの最下行の行番号を取得したいのだから
Rows(n).Row このnはRowsの行の数を指定すれば良い事になります。
Sub test()
Sheets.Add.Range("A5:A10").Value = 1
With ActiveSheet.UsedRange
MsgBox ".UsedRange.Address= " & .Address
MsgBox ".UsedRange.Rows(1).Row= " & .Rows(1).Row
MsgBox ".UsedRange.Rows.Count= " & .Rows.Count
MsgBox ".UsedRange.Rows(.Rows.Count).Row= " & .Rows(.Rows.Count).Row
End With
End Sub
こんなサンプルだったら理解できるでしょうか?
ちなみに、UsedRangeは必ず1行目から始まるとも限りません。
提示コードはちょっと危ういところもありますから更に検討してみてください。
|
|