2017-08-08 4 views
1

私はトラッカーを持っており、ユーザーは毎日その行を追加します。 セルをダブルクリックすると、現在の日付とユーザー名を示すコードが必要です。 Co列Aは日付セルになり、列Pはユーザー名になります。クリックした場合の日付とユーザー名

私はいくつかのコードを持っていましたが、1回目のチェックが終わるとユーザーと日付が表示されます。今すぐクリックが必要です。

Sub CheckBox_Date_Stamp() 

Dim cbx As CheckBox 

'Application.Caller returns the name of the CheckBox that called this macro 
Set cbx = ActiveSheet.CheckBoxes(Application.Caller) 

'.TopLeftCell returns the cell address located at the top left corner of the cbx checkbox 
With cbx.TopLeftCell 
    'Check the checkbox status (checked or unchecked) 
    If cbx.Value = xlOn Then 
     ' Checkbox is Checked 
     ' User Name and Date-Time 
     .Offset(0, 1).Value = Environ("UserName") 
     .Offset(0, 2).Value = Now 
    Else 
     ' Checkbox is unchecked; Clear cell contents? 
     .Offset(0, 1).ClearContents 
     .Offset(0, 2).ClearContents 
    End If 
End With 

End Sub 

お手伝いできますか? ありがとう

答えて

1

正確には何を意味するのかはっきりしていますが、一般的には、SelectionChangeのイベントがワークシートに必要です。ここではワークシートに以下を追加します。

enter image description here

Option Explicit 

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

    If Target.Cells.Count <> 1 Then Exit Sub 

    If Target.Address = Cells(1, 2).Address Then 
     Cells(1, 1) = Application.UserName 
     Cells(1, 16) = Now 
    Else 
     Debug.Print "This was not B1" 
    End If 

End Sub 

あなたが列APUserNameと時刻を取得しますB1をクリックすると。

+0

これは、B1の代わりにA1をクリックしたときに機能するようにこれを変更することはできますか?変化する細胞が(1,1)に働くだろうか? – Adam

+0

@Adam - 動作しますが、コード内のユーザ名を表示しているセルも変更する必要があります。 – Vityata

+0

OK、クリックしたセルに表示することはできませんか?私はA1をクリックして、A1の日付をポップすることを意味しますか? – Adam

0

これはあなたがダブルクリックほうセルの列A/Bのコンピュータのユーザー名と日付/時刻を配置します。

ワークシートではなく、別のモジュールにコードを追加します。
列A:Bにまだデータが含まれていないことを確認するコードを追加したり、確認を求めたりすることもできます。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    Cells(Target.Row, 1) = Environ("username") 
    Cells(Target.Row, 2) = Now 
End Sub 
関連する問題