0
マクロがGETGUID()
です。対応する列 'A'に値があるときは常に、列 'B'のマクロを呼び出すとします。列Aが空の場合、対応する列BのGETGUIDマクロを呼び出さないでください。別のセルの値に基づいて、1つのセルの特定のマクロを呼び出します。
次のコードを試しましたが、動作しません。テストでは、範囲A1:A20を使用していますが、範囲は任意です。 GETGUID()マクロは、B列に手動で入力するとうまく動作しますが、A列の対応するセルに値がある場合はいつでも動作します。
マクロの使用に関する私の知識はあまり良くありません。
Public Function GetGUID() As String
GetGUID = Mid$(CreateObject("Scriptlet.TypeLib").GUID, 2, 36)
End Function
Dim cell_to_test As Range, cells_changed As Range
Set cells_changed = Target("A1:A20")
Set cell_to_test = Range("B1:B20")
If Not Intersect(cells_changed, cell_to_test) Is Nothing Then
Range("B1:B12") = GetGUID()
End If
あなたは、列Aを使用すると、ワークシートのページに次のマクロを追加することができます移入されたときにGUIDを追加するために探している場合: 'ます。Private Sub Worksheet_Change(ByValの対象を範囲) 次にTarget.Column = 1 もしあればTarget.Value <> vbNullString Then Target.Offset(、1).Value = GetGUID End If End Sub' – Nulled
ありがとう@Nullled。私はこのコードだけでなく、上記で提供されたものを試しましたが、うまくいきません。私の非常に限られた知識のために理解できない小さなものでなければなりません.PRVATE RANGE_CELL As Range パブリック関数GetGUID()As String GetGUID = Mid $(CreateObject( "Scriptlet.TypeLib")。GUID、2、 36) エンド機能 プライベートサブWorksheet_Change(ByValの対象を範囲) 場合Target.Column = 1そして 場合Target.Value <> vbNullStringそしてTarget.Offset(1).Valueの= GetGUID エンドEND IF Sub – shuru
VBAエディタを開き、GUIDが必要なワークシートをダブルクリックしてコメントにコードを貼り付ける必要があります。コードがワークシート内に入ると、VBAエディタを閉じることができます。Excelでシートに移動し、列Aに値を追加します。マクロは列BのセルにGUIDを追加します。あなたが受け取ったデバッグメッセージを私に送ることができますか? – Nulled