|
こんばんは。
>'最終行の取得
>Set LstCell = Worksheets("台帳").Range("A6").End(xlDown)
>If LstCell.Row = 65536 Then
> LstCell = Worksheets("台帳").Range("A6")
↑これがA65536にA6の値を代入してるだけなので、
Set LstCell = Worksheets("台帳").Range("A6")
にしないとLstCellはA65536のまま
>End If
>If LstCell = Worksheets("台帳").Range("A6") Then
なので、かならずここを通る
> lblNo.Caption = 1
>Else
> lblNo.Caption = LstCell.Value + 1
>End If
>
>'書き込み
↓A65536の下の行はないのでエラー
>With LstCell
> .Offset(1, 0) = Val(lblNo)
> .Offset(1, 1) = cName.Value
>End With
A7以下のセルに1,2,3・・・と入れていくんだと思いますが、
参考までにこうするとすっきりするかも。
ただし、A6にタイトルか何かが入力されている必要があります。
With Worksheets("台帳").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
lblNo.Caption = .Row - 6
.Value = .Row - 6
.Offset(0, 1).Value = cName.Value
End With
A6に何も入力されてないなら、A6に適当に値を入れてから
上のコードを実行し、終わったらA6の値をクリアすればいいかと。
もしLstCellを他にも使用してるなら、最初の1行を
Set LstCell = Worksheets("台帳").Cells(Rows.Count, 1).End(xlUp)
With LstCell.Offset(1, 0)
にしてみてください。
やりたいことと違っていたらすみません。
|
|