我已经在2010年以前的各种版本的Excel中使用这个简单的代码多年了,这是通过在A列中输入数字来为一张纸上的条目添加时间,输入时间将被插入到相邻的单元格中。 B栏 我最近购买了一台平板电脑,因为这样可以更好地用于电子表格。平板电脑正在运行Windows 8和Office 2013.当我运行工作表时,时间进入单元格,但随后立即消息“Microsoft Excel已停止工作”并且Excel关闭。 我已经在平板电脑上加载了Excel 2010,因为我认为问题可能是Excel 2013,但这也不起作用。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim c As Integer
Dim f As Integer
c = ActiveCell.Column
r = ActiveCell.Row
If c <> 1 Then End
Cells(r - 1, c + 1) = Time$
Cells(r - 1, c + 1).NumberFormat = "h:mm:ss AM/PM"
End Sub
答案 0 :(得分:1)
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim c As Long
Dim f As Long
c = ActiveCell.Column
r = ActiveCell.Row
If c <> 1 Then Exit Sub
If r = 1 Then Exit Sub
Application.EnableEvents = False
Cells(r - 1, c + 1) = Now
Cells(r - 1, c + 1).NumberFormat = "h:mm:ss AM/PM"
Application.EnableEvents = True
End Sub
答案 1 :(得分:0)
另一种更短的版本是
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not (Intersect(Target, Range("A2", Range("A2").End(xlDown))) Is Nothing) Then
Application.EnableEvents = False
Target.Offset(0, 1) = Now
Target.Offset(0, 1).NumberFormat = "h:mm:ss AM/PM"
Application.EnableEvents = True
End If
End Sub
此解决方案在第1列中输入多个值时也适用。