通过创建时间戳来跟踪更改

2024-01-08

我发现原始代码(Excel VBA)可以很好地跟踪一列:

Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("P:P"), Target)
xOffsetColumn = 2
If Not WorkRng Is Nothing Then
    Application.EnableEvents = False
    For Each Rng In WorkRng
        If Not VBA.IsEmpty(Rng.Value) Then
            Rng.Offset(0, xOffsetColumn).Value = Date
            Rng.Offset(0, xOffsetColumn).NumberFormat = "dd-mm-yyyy"
        Else
            Rng.Offset(0, xOffsetColumn).ClearContents
        End If
        Next
    Application.EnableEvents = True
End If
End Sub

我想跟踪两列。您将在下面找到新添加的代码。即使我在 Dim 之后更改了变量名称(通过添加 b),它也不起作用。简单地复制粘贴旧代码,然后仅将范围从 P:P 更改为 S:S,并且 xOffsetColumn 也不起作用。

Private Sub Worksheet_Change_b(ByVal Target As Range)
'Update 20140722
Dim WorkRngb As Range
Dim Rngb As Range
Dim xOffsetColumnb As Integer
Set WorkRngb = Intersect(Application.ActiveSheet.Range("S:S"), Target)
xOffsetColumnb = 3
If Not WorkRngb Is Nothing Then
    Application.EnableEvents = False
    For Each Rngb In WorkRngb
        If Not VBA.IsEmpty(Rngb.Value) Then
            Rngb.Offset(0, xOffsetColumnb).Value = Date
            Rngb.Offset(0, xOffsetColumnb).NumberFormat = "dd-mm-yyyy"
        Else
            Rngb.Offset(0, xOffsetColumnb).ClearContents
        End If
    Next
    Application.EnableEvents = True
End If
End Sub

这个修改是对你原来的工作表_更改 https://msdn.microsoft.com/en-us/library/office/ff839775.aspx事件宏应该处理两列,包括将多个值粘贴到包含一列或两列的范围中。

Private Sub Worksheet_Change(ByVal Target As Range)
    'Update 20150930
    If Not Intersect(Target, Union(Columns("P"), Columns("S"))) Is Nothing Then
        On Error GoTo bm_Safe_Exit
        Application.EnableEvents = False
        Dim rng As Range
        For Each rng In Intersect(Target, Union(Columns("P"), Columns("S")))
            If Not VBA.IsEmpty(rng) Then
                rng.Offset(0, 2 - CBool(rng.Column = 19)) = Date
                rng.Offset(0, 2 - CBool(rng.Column = 19)).NumberFormat = "dd-mm-yyyy"
            Else
                rng.Offset(0, 2 - CBool(rng.Column = 19)).ClearContents
            End If
        Next rng
    End If
bm_Safe_Exit:
    Application.EnableEvents = True
End Sub

为了简化偏移量,我只是将两列从 P 列返回到 N 列。我不确定为什么第二个事件宏示例仅移回到 P 列;我认为您无意覆盖 P 列中的值。

The Application.ActiveSheet.Range("P:P")如果事件宏是由更改其中一个值的代码触发的,而另一个工作表保存该值,则列引用是不必要的,并且存在潜在危险。工作表代码页默认是私有的;模块代码页默认是公共的。您可以引用单元格和范围,而无需在工作表代码表中显式声明其父级,而这在模块代码表中是不好的编码实践。

我还更改了用于时间戳的值Date to Now。单元格格式仍然只显示日期,但如果您需要它,您也有时间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过创建时间戳来跟踪更改 的相关文章

  • 有一个更好的方法吗? VBA脚本

    我这里有一份供料泵的跟踪清单 我们必须考虑库存水平 所以我做了这个 当您将泵输入表中时 什么也没有发生 当您将患者姓名放在上面时 该行会变成粉红色 表明该泵已离开我们的库存 我试图将一个脚本 宏放在一起 可以计算我们仍然拥有的泵 即白色行
  • Excel的INDEX函数可以返回数组吗?

    如果数据在范围内A1 A4如下 Apple Banana Orange Strawberry Then INDEX可用于单独返回该列表中的任何值 例如 INDEX A1 A4 3 会回来Orange 是否有类似的 Excel 函数或函数组合
  • Excel VBA 组合框识别

    我的用户表单上有 4 个以上的组合框 当他们触发时 他们触发相同的事件 我想做的是找出哪个 ComboBox 触发了该事件 组合框的创建取决于组件的数量 生成组合框的代码如下所示 For j 0 To UBound ComponentLis
  • 在php中将excel转换为xml

    我想读取 Excel 文件并根据该数据创建 XML 文件 在php中可以吗 Thanks 快速谷歌搜索发现this PHP https github com PHPOffice PHPExcelCodePlex 上的项目 您可能想看一下 它
  • COM 错误?打开工作簿两次会导致引用损坏

    归功于fuglede https stackoverflow com users 5085211 fuglede为了引起我的注意 这是 COM 错误吗 我打开 Excel 工作簿 A 然后打开工作簿 B 这两个工作簿在单元格 A1 中都有一
  • 如何同时在多个 Wksheet 中搜索某个字符串?

    我有大约 30 张工作表 我希望这些代码同时运行 我想找到 ABC 并删除所有工作表中它旁边的单元格的值 我的错误来自 Set rSearch range A1 range A rows count end x1up 当我在 With 语句
  • 如何从有条件的列中获取最新值

    我在 Excel 中有一个表 其中包含以下列 Date 人名 金额 英镑 该表用于记录人们何时付钱给我 通常 我可以让不止一个人在同一天向我付款 而且 随着时间的推移 同一个人会在很多天向我付款 记录添加到表格底部 以便按日期排序 但不再按
  • VBA 中的 Excel 下拉列表:“无法获取工作表类的 DropDowns 属性”

    我有这个代码 Sub addDropdown Name ActiveSheet DropDowns Add 74 25 60 188 25 87 75 Select Set n ActiveSheet DropDowns Name If N
  • 如何在 Excel VBA 中仅迭代自动筛选工作表中的行?

    需要仅迭代自动筛选范围中的行 目的是获取行索引 我尝试过这个块 For Each ele In rng RowInd ele Rows Address RowNum Split RowInd 2 Next ele 这会在 rng 中的所有
  • 我怎样才能优化这个vba循环代码?

    嗨 我写了这段代码 但这段代码非常慢 我该如何优化这段代码 Private Sub printItem r lastCol objStream FirstCol 1 Dim strFirst As String strFirst CStr
  • Excel 中数字的条件格式(自定义格式)具有多个条件

    我想根据单元格中的值动态地将数字格式化为 M 百万 B 十亿 或 K 千 我尝试过 但这不起作用 gt 1000000000 0 B gt 1000000 0 M gt 1000 0 K 0 如果我给出任意两个条件 它就会起作用 例如 gt
  • 使用 C# 的高级过滤器 excel

    我需要在Excel工作表中做一个过滤器 我想知道是否可以做这样的过滤器 List
  • 基于两列值的VLOOKUP

    我有一个表 其中一列包含用户 ID 这些被多次输入以显示特定主题的结果 ID Topic Pass Fail 71086686 Science P 71086686 Maths P 71086686 Tech P 71086686 ICT
  • 如何使用 VBA 在 Excel 中搜索单词然后删除整行? [复制]

    这个问题在这里已经有答案了 请有人帮忙 我正在尝试编写一个 VBA 代码 在 Excel 工作表 D 列中搜索特定单词 DR 然后删除整行 工作表中特定单词多次出现 我想做的就是搜索这些出现的情况 然后删除包含这些单词的整行 我的问题是我不
  • 用于替换格式但保留单元格值的 VBA:部分解决

    我正在尝试组合 VBA 来搜索特定的单元格格式 然后更改该单元格格式 我从这篇文章中得到了灵感 Excel VBA 值替换后仍保持字符串格式 https stackoverflow com questions 25825136 excel
  • 是否可以编写自定义 Power Query 连接器?

    在 来自其他来源 下的 Power Query 中 我们看到许多专业提供商 Facebook SAP SalesForce 等 我有兴趣编写一个自定义提供程序来访问无法通过任何内置连接器使用的本地专有数据存储 我知道 访问没有支持连接器的数
  • 自动创建 Outlook 约会

    我有一个跟踪到期日期的电子表格 excel 2003 我想知道是否有办法让这些到期日期在 Outlook 中创建约会 提醒 到期日期位于电子表格的一个字段中 实体名称位于另一列中 理想情况下 我希望 Outlook 2003 能够获取日期
  • Hyperlinks.add VBA [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在用 VBA 编程 我想使用创建超链接hyperlink addActiveSheet 对象的方法 但是它不起作用 这是我的代码 set
  • 使用 python 只读取 Excel 中的可见行

    我想只读取 python 中 Excel 工作表中的可见行 输入 Excel表 所以当我过滤时 作为 python 中的输出 在本例中我将仅获得可见数据 1 行 这是我的代码 from openpyxl import load workbo
  • 使用 php 和 symfony 从数组创建 Excel 文件

    我正在尝试使用 PHP 和 symfony 将数组导出为 XLS 文件 如下面的代码所示 创建 XLS 文件后 我只能获取数组的最后一行 并且它显示在文件的第一行中 似乎 lignes 变量没有增加 我不明白出了什么问题 有人可以帮忙吗 f

随机推荐

  • 如何判断当前的输入语言?

    我正在设计一个屏幕键盘 我需要确定用户设置了哪种语言以及他现在在其他线程中使用哪种语言 即我需要知道任务栏语言切换器中选择的语言 附 当前文化返回屏幕键盘应用程序中使用的语言 这不是我正在寻找的情况 解决方案是获取前台窗口的键盘布局 然后将
  • Extjs 中的按钮宽度

    我在 Extjs 中使用 width 属性为按钮提供宽度 但它不起作用 项目 xtype 按钮 文本 好的 宽度 120 假设您正在寻求一个调整按钮大小的解决方案 我正在进行一个需要 ExtJS 2 2 的项目 因此假设我们在这里使用的是
  • 在模块级别还是在函数级别导入?

    哪种风格更可取 Style A def foo import some module some module something Style B import some module def foo some module somethin
  • Java:如何正确下载分块内容?

    我必须下载 HTTP 响应为 传输编码 分块 的文件 因为我无法 getContentLength 为 DataInputStream 分配新的字节缓冲区 你能建议我如何正确地做吗 代码示例非常简单 try dCon HttpURLConn
  • 如何在Python中获取调用shell的名称?

    我有一个始终从 shell 调用的 Python 脚本 可以是 zsh 或 bash 我如何知道哪个调用了该脚本 在 Linux 中 您可以使用 procfs gt gt gt os readlink proc d exe os getpp
  • 在 LocalFolder 中存储位图图像 - UWP

    我正在尝试在 UWP 上使用 C 将 BitmapImage 存储到文件系统 该图像是使用图形 api 从 Facebook 下载的 并作为 BitmapImage 返回 该部分有效 并检索图像 一旦我可以存储它 用刚刚放入本地文件夹中的图
  • Django:创建对象时搜索多对多字段

    我有一个用例 其中有多个Ingredient可以链接到Recipe通过 Django 管理员 现在我有大约一百种成分 这使得在下面的 UI 中选择成分变得非常困难 有没有办法添加搜索字段或类似于 django admin 的内容以便于选择
  • Flutter Google Maps,尝试创建已创建的平台视图,视图 ID:0

    第一次谷歌地图颤动 加载完美 但当热重启时 它会进入平台异常 google maps flutter 0 5 21 15 Github google maps flutter 尝试创建一个已创建的平台视图 45695 https githu
  • 使用实体框架获取所有记录的 PagedList

    PagedList 是一个分页库 dbContext Products ToList ToPagedList 1 25 上面的代码将获取数据库中第 1 页的前 25 条记录 问题是ToList 调用将获取数据库中的所有记录 然后ToPage
  • iOS 模拟器版本未出现 - Xcode 12.2

    我想在 iOS 10 中测试我的应用程序 我只是尝试了像过去一样添加新的 iOS 模拟器的流程 但我下载的 iOS 版本没有出现在列表中 我正在使用Xcode 12 2 当我尝试添加新模拟器时 iOS 10 没有出现在列表中 The iOS
  • 获取插入 Set 的最后一个值

    The Set 的 MDN 文档 https developer mozilla org hu docs Web JavaScript Reference Global Objects Set说 JavaScriptSet对象保留元素的插入
  • 更改 MATLAB 编译器运行时 jvm 版本

    我想知道如何更改 MATLAB 编译器运行时 jvm 版本 默认是java 1 6 我想把它改成java 1 7 我已经设置了 MATLAB JAVA 环境变量 但它不起作用 请帮我 看看这个link http www mathworks
  • 如何在另一个 QML 文件中通过 id 引用某个项目?

    假设我有以下两个 qml 文件 main qml Window onSomething mybutton text foo Foo Foo qml Item Button id mybutton When onSomething调用它会产生
  • 通过 Python Flask 从一个 HTML 输入获取多个值

    我有一个动态生成的行数 其中包含具有默认值 order quantity 的表中的文本框 基本上 在一篇文章中 我希望 sql 中的项目表根据这些文本框的 ID 来更新它们的值 for i in items tr td td td td t
  • JPA / Hibernate / Derby TableGenerator 使用负值

    我希望数据库中生成的所有主键均为负整数 我定义了一个TableGenerator
  • Win32 PlaySound:如何控制音量?

    我正在使用 Win32 多媒体函数播放声音 http msdn microsoft com en us library dd743680 28VS 85 29 aspx从我的应用程序中播放声音 我希望能够动态调整正在播放的声音的音量with
  • 从 AnyObject 扩展的协议和纯类协议有什么区别?

    这两个声明 protocol SomeProtocol AnyObject 和这个声明 protocol SomeProtocol class 似乎使得只有类可以符合此协议 即协议的实例是对对象的引用 并且没有其他效果 他们之间有什么区别吗
  • 将文件放在 FTP 站点上,其中包含字符串变量的内容(无本地文件)

    I want to upload a file to an FTP server but the file content is held in a variable not in an actual local file I want t
  • 如何将 java.util.Date 实例的时间设置为 00:00:00?

    我有一个类型的变量java util Date 如何将时间部分设置为 00 00 00 我不允许使用 Apache Commons 库或 JodaTime 这java util Calendar可能是我唯一的选择 要将时间从Date完全反对
  • 通过创建时间戳来跟踪更改

    我发现原始代码 Excel VBA 可以很好地跟踪一列 Private Sub Worksheet Change ByVal Target As Range Update 20140722 Dim WorkRng As Range Dim