gpt4 book ai didi

excel - 宏无法自动运行

转载 作者:行者123 更新时间:2023-12-04 20:14:59 25 4
gpt4 key购买 nike

我正在使用宏在修改列时编写日期戳。这个想法是,每当状态发生变化时,它都会给出该特定状态的运行时间。我有四列:

A                   b            c     d
clearing 24.04.2015 1 empty
**when stauts is changed**
A b c d
wait for start 24.04.2015 2 24.04.2015

c 的公式是:
IF(RC[-2]="";"";IF(RC[-2]="clearing";1;2))
Macro;

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Value = "clearing"
Then
Cells(Target.Row, 2) = Date
Else
If Target.Column = 3 And Target.Value = 2
Then
Cells(Target.Row, 4) = Date
End If
End If
End Sub

问题是当 C 列在公式的帮助下更改为 2宏不会自动给我日期,但是当我手动插入它时它正在工作。

最佳答案

当您将值放入触发 Worksheet_Change 的工作表中时事件宏,您应该始终关闭事件,否则宏将尝试自行运行。

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns(1)) Is Nothing Then
On Error GoTo Fìn
Application.EnableEvents = False
Dim rng As Range
For Each rng In Intersect(Target, Columns(1))
If LCase(rng.Value) = "clearing" Then
Cells(rng.Row, 2) = Now
Cells(rng.Row, 2).NumberFormat = "dd.mm.yyyy"
'Cells(rng.Row, 3).FormulaR1C1 = "maybe put the formula in here"
ElseIf rng.Offset(0, 2).Value = 2 Then
Cells(rng.Row, 4) = Now
Cells(rng.Row, 4).NumberFormat = "dd.mm.yyyy"
End If
Next rng
End If
Fìn:
Application.EnableEvents = True
End Sub

听起来您在 C 列中已经有了该公式,但是我留下了一个地方,一旦 A 列获得清算值,您就可以将其放入。另一种选择是简单地将 1 写入 C 列,然后下次在 C 列写入 2。这样您根本不必处理公式。

关于excel - 宏无法自动运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29844916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com