2017-01-18 8 views
1

次のコードをこのフォーラムから取得しました。これは正常に動作していますが、Excelファイル内のレコードを削除するとエラーが発生します。私が得るエラーは です。実行時エラー '13': 型の不一致。実行時エラー '13':Excelファイル内のレコードを削除するときの型の不一致

デバッグ]ボタンをクリックすると、それはコード内のfolloing行をハイライト:

If Target.Value <> vbNullString Then Target.Offset(, 1).Value = GetGUID 

私は問題が何であるかを知っているが、それを修正する方法がわからないと思います。あなたはTarget.Value <> vbNullStringがエラーをスローしますので、あなたが複数のセルを変更している削除された場合

完全なコードは

Private RANGE_CELL As Range 

Public Function GetGUID() As String 
     GetGUID = Mid$(CreateObject("Scriptlet.TypeLib").GUID, 2, 36) 
    End Function 

Private Sub Worksheet_Change(ByVal Target As Range) 
If Target.Column = 1 Then 
If Target.Value <> vbNullString Then Target.Offset(, 1).Value = GetGUID 
End If 

End Sub 
+0

あなたが行全体を削除していますか? –

答えて

1

です。

範囲を一度に複数のセルと一括比較することはできません。

には、列Aが変更されていることを確認するためのチェックを追加し、唯一の標的細胞全体ではなく範囲があること:あなたがレコードを削除している場合

Private Sub Worksheet_Change(ByVal Target As Range) 
If Target.Column = 1 And Target.Count = 1 Then 
    If Target.Value <> vbNullString Then Target.Offset(, 1).Value = GetGUID 
End If 

End Sub 
+0

.....ありがとうございます。それは問題を解決します:) – shuru

関連する問題