「MyRange」という名前の範囲があります。と定義してい='Sheet1'!$A:$A
ます。VBAには、式がありLastRow= Cells(Rows.Count, Range("MyRange").Column).End(xlUp).Row
ます。名前付き範囲のデータを含む最後の行を返す必要があります。ただし、現在のシートの列 A の最後の行を返します。シート参照が名前付き範囲から削除されているのはなぜですか? また、それを所定の位置に保持するにはどうすればよいですか?
3 に答える
2
コードの構文は、Cells 引数と Rows 引数の両方で、名前付き範囲のシートではなく、アクティブなシートを参照するようなものです。
シート参照を維持するための構文は次のようになります。
With Range("myrange").Worksheet
LastRow = .Cells(.Rows.Count, [myrange].Column).End(xlUp).Row
End With
セル、および行 (および列) の前の「ドット」に注意してください。
于 2014-06-18T19:34:35.660 に答える
1
これを使用してみてください:
LastRow = range("MyRange").Worksheet.Cells(Rows.Count, Range("MyRange").Column).End(xlUp).Row
編集別の回答と同じ方法:)回答を完了するのに時間がかかりすぎました!
失敗した理由は、CELLS がデフォルトで現在アクティブなシートを参照しているためです。Range("MyRange").Worksheet を CELLS の前に追加すると、"MyRange" が含まれるワークシートで動作します。
于 2014-06-18T20:03:42.947 に答える