在EXCEL VBA写代码 要求是:比如我在A列输入随便内容,B列就自动填入输入内容时的日期 求excel vba代码,当A列输入与上面单元格内容有重复时...

EXCEL\u4e2d\u5982\u4f55\u7528VBA\u5b9e\u73b0\u5728B\u5217\u8f93\u5165\u5b57\u7b26\u7684\u65f6\u5019 \u81ea\u52a8\u5728A\u5217\u4e2d\u63d2\u5165\u65f6\u95f4\u548c\u65e5\u671f?

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target "" Then
Target.Offset(0, -1) = Now
End If
End Sub
\u4f60\u7528\u8fd9\u4e2a\u770b\u770b
\u6211\u7528\u7684\u662f\u4e0d\u7b49\u4e8e\u7a7a \u5c31\u662f\u6709\u6570\u636e\u65f6\u5019\u6267\u884c

Sub s()
Set d = CreateObject("scripting.dictionary")
c = InputBox("\u8bf7\u8f93\u5165\u5217\u6807\uff1a")
n = Cells(Rows.Count, c).End(3).Row
For i = 1 To n
a = Cells(i, c).Text
If a "" Then
If d.exists(a) Then
MsgBox c & "\u5217\u5185\u5bb9\u6709\u91cd\u590d\uff01"
Exit Sub
Else
d.Add a, ""
End If
End If
Next
MsgBox c & "\u5217\u5185\u5bb9\u65e0\u91cd\u590d\uff01"
End Sub

把代码粘贴到你要生成数据的表,这是使用单元格事件完成的,也就是说在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我。

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列写入时间,以此类推

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 内即可

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表,就可以实现了

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

扩展阅读:vba编程必背50个程序 ... excel图片一键排列整齐 ... vba编程代码对照表 ... 录入vba必背代码大全 ... 初学vba编程100个代码 ... vba代码生成器 ... ppt vba编程代码大全 ... excel vba打印代码大全 ... excel vba录入代码大全 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网