ユーザーフォームを使用してテーブル レコードを編集したいのですが、以下のコードは最初の行でしか機能しません (理由はわかりません)。変更したい行で機能するようにコードを変更する方法を教えていただけますか? 常に「Type Mismatch」というエラーが表示され、次のコード「WriteRow = Application.Match(ABnum, ABrng, 0)」が示されます。
これまでの私のコードは次のとおりです:
Application.ScreenUpdating = False
Dim LastRow As Long
Dim ABnum As String
Dim ABrng As Range
Dim WriteRow As Long
Sheets("CDP DATABASE").Select
With ActiveSheet
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
Set ABrng = .Range("B7:B" & LastRow)
ABnum = txtemn.Value
WriteRow = Application.Match(ABnum, ABrng, 0)
Cells(WriteRow, 1).Select
End With
With ActiveCell
.Offset(0, 1).Value = txtemn.Value
.Offset(0, 2).Value = txtcode.Value
.Offset(0, 3).Value = txttype.Value
End With
Application.ScreenUpdating = True
また、レコードの追加と編集にはユーザーフォームのみを使用するように強制したいと思います。シートを保護しようとしましたが、この方法ではフォームを使用して編集や追加を行うことができません。助けてください。よろしくお願いします。