選択の最初のセルを取得して6番目のセルにマージするマクロを作成しようとしています。エラー400が発生しています。Excel行を選択する
Sub SignPage()
Dim ws As Worksheet, BasePoint As Range, row As Long, singlecell As Long,
singleCol As Long, sLong As Long, sShort As String
Set BasePoint = Selection
row = BasePoint.row
Range(Cells(row, BasePoint.Columns(1)), Cells(row, BasePoint.Columns(6))).Merge
End Sub
FWIW 'cell'、' row'、 'column'などに何も問題はありません。 VBAはそれらをまったく使用しません。 VBAはExcelオブジェクトモデルではなく、ExcelオブジェクトモデルはVBAではありません。 Excelオブジェクトモデルには、「行」または「列」または「セル」グローバルスコープオブジェクトはありません。だから、最悪の場合、 'Range.Row'は' Range.row'として表示されますが、これはまったく影響しません。 'row'と' column'(と 'cell')は完全に良い局所変数名で、何もシャドーイングしていません。不適格の 'Cells'と' Range'呼び出しは、持っている習慣のはるかに危険です。 –
私は選択を使って開始列と終了列を知っているだけでなく、行を知っています。だから、私は必要なページにサインページを作ることができます。そして、その選択は、構築の基点として使用されます。 –
@JacobLenertz 'Selection'が少なくとも6列幅でない場合、このコードはエラーをスローすると思います。 –