在EXCEL VBA写代码 要求是:比如我在A列输入随便内容,B列就自动填入输入内容时的日期
发布网友
发布时间:2023-06-26 10:03
我来回答
共5个回答
热心网友
时间:2023-10-13 04:56
把代码粘贴到你要生成数据的表,这是使用单元格事件完成的,也就是说在A、C两列输入数据时,B、D就相应写入当前的日期和时间,且这个时间不会随系统时间改变而改变,只是输入数据的时间。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iR&, x&
If Target.Column = 1 Or Target.Column = 3 Then
iR = Target.Row
x = Target.Column
Cells(iR, x + 1) = FormatDateTime(Now(), 0)
End If
End Sub
或者用
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Or Target.Column = 3 Then
Cells(Target.Row, Target.Column + 1) = FormatDateTime(Now(), 0)
End If
End Sub
不明白怎么用可HI我。
热心网友
时间:2023-10-13 04:56
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Dim xx As String
xx = Target.Row
Range("B" + xx) = Date
End If
End Sub
以上代码实现了在A列写入内容,在B列显示,写A列的时间,C列写内容,D列写入时间,以此类推
热心网友
时间:2023-10-13 04:57
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Count = 1 Then
If Target.Column = 1 Then Target.Offset(, 1) = Now
End If
End Sub
按ALT +F11 进入VBE界面
将上面代码放入 thisworkbook 内即可
热心网友
时间:2023-10-13 04:57
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If c.Column = 1 Or c.Column = 3 Then
If c.Value = "" Then
c.Offset(0, 1).Value = ""
Else
c.Offset(0, 1).Value = Now
End If
End If
Next
End Sub
---------
按ALT+F11,打开代码窗口,将上面的代码复制入其中,返回sheet表,就可以实现了
热心网友
时间:2023-10-13 04:58
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Target.Offset(0, 1).Value = Date
End If
End Sub