excel - 如何查看单元格的内容何时被清除与“Worksheet_Change”子中的设置为 0?
问题描述
我正在“Worksheet_Change”子中编写代码,我需要在其中存储单元格值的潜在变化(始终为整数)。但是,当一个值被删除时,它在我的工作表中显示为“0”,我需要它根本不显示任何值,因为“0”和“无”在我的文件中以完全不同的方式处理。
那么,我该如何编码,以便我可以区分设置为零的内容和删除的内容之间的区别,以便当我需要删除单元格的值(因此清除其内容)时,它会出现空而不是零?
我相信问题可能出在以下部分:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim oldQty As Integer
Dim newQty As Integer
Application.EnableEvents = False
With Target
newQty = .Value
Application.Undo
oldQty = .Value
.Value = newQty
End With
Application.EnableEvents = True
(...)
End Sub
我需要这个来存储单元格的旧数量。我希望我足够清楚,任何帮助表示赞赏
解决方案
将以下行放在Worksheet_Change
.
If Target.Cells.Count > 1 Then Exit Sub 'prevent error in case of range edits
并更改以下部分
With Target
newQty = .Value
Application.Undo
oldQty = .Value
.Value = IIf(newQty = 0, vbNullString, newQty)
'if value is zero return an epmty string instead of `0`
End With
推荐阅读
- kubernetes - Flink on K8S:如何为集群提供 Flink 配置?
- c# - 为什么VS2017在watch view中查看基类对象时会显示派生类的成员值?
- php - 对于已经部署的基于 CodeIgniter 的站点,有没有办法知道视图上的哪个 PHP 文件生成每个页面的 HTML?
- opengl - 任何想法如何翻转网格以生成对象?
- oracle - 适用于 Oracle 和 Dataguard 的 AWS Cloudformation 模板安装总是失败
- angular - Angular 2 - 来自 api 数据的链接以在新窗口中打开
- c# - 使用 jquery 验证下拉列表不起作用
- java - JDK 加密可以使用 Microsoft Windows Cryprographic Service Provider 吗?
- excel - 索引和匹配/最小值函数的 For 循环
- java - jconsole 时间格式是什么?