首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当一个单元格验证(IF条件)时,所有其他单元格也会验证

当一个单元格验证(IF条件)时,所有其他单元格也会验证
EN

Stack Overflow用户
提问于 2016-07-13 16:28:47
回答 2查看 19关注 0票数 0

我有两列(1) DATE/TIME COMPLETED (1)DATE/TIME COMPLETED (2)状态。

(1)有一个=IF(B1="COMPLETED", NOW(), "")公式

注意:我已经更改了B1、B2等。与行号相对应。

这意味着如果(2)状态为“已完成”,则应在第(1)列中显示当前日期/时间,否则应显示为空。

但当我完成一个单元格时,所有其他状态为已完成的单元格也会验证/刷新,这会用相同的日期和时间值标记所有单元格。

如何才能只更新已更新的单元格的状态,而不更改状态中的其他单元格?

EN

回答 2

Stack Overflow用户

发布于 2016-07-13 16:32:18

在这种情况下,你真的不应该依赖NOW()。Excel重新验证的原因有很多。您可以创建一个获取当前时间并将其设置为文本的宏,也可以手动执行相同的操作。

或者,要将现有公式转换为文字值,请遵循this guide。应该在任务完成后立即对每一行执行此操作,这样Excel就不会有机会错误地重新评估它。

票数 0
EN

Stack Overflow用户

发布于 2016-07-13 16:54:24

now()给出了处理公式时的当前时间。由于它是一个动态值,它将每次更新为当前日期/时间。

我发现能够自动执行此操作的唯一方法是使用VBA (宏):

代码语言:javascript
代码运行次数:0
运行
复制
Private Sub Worksheet_Change(ByVal Target As Range)
' Assuming column 2 is actually columns "B". In case it's not, change target.column to the right column number
If Target.Column = 2 And UCase(Target.Text) = "COMPLETED" Then
    'Assuming the datetime field goes to the column to the left of the above column.
    Cells(Target.Row, Target.Column - 1) = Now
Else
    If Target.Column = 2 Then Cells(Target.Row, Target.Column - 1).Clear
End If
End Sub

希望这能解决你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38346416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档