【问题标题】:Is there a [Google App script] method like Application.Intersect(Target, Range) in Excel VBA?Excel VBA 中是否有类似 Application.Intersect(Target, Range) 的 [Google App script] 方法?
【发布时间】:2022-01-07 05:15:59
【问题描述】:
#VBA 
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Range("A2:M10"), Target) Is Nothing Then
Range("N" & Target.Row).Value = Format(Now)

End If
End Sub

嗯,我想要的是 表示更正或输入的时间 每当修改或输入每列的相应范围时。

这里的问题:如果有人做过类似的事情,请分享您的经验。如果他能复活,我会让他适应我的任务。

【问题讨论】:

    标签: google-apps-script google-sheets timestamp


    【解决方案1】:

    是的,您也可以使用 onEdit 触发器在 app-script 中拥有相同的功能,

    根据可用的 VBA 代码,通过您的 google 表格进入 appscript 编辑器并尝试以下操作:

    function onEdit(e) {   
        var range = e.range; // Get edited range
        var row = range.getRow() //  Get edited row from range
        var column = range.getColumn() //  Get edited column from range
        var ss = SpreadsheetApp.getActiveSpreadsheet();
        var ssname = ss.getActiveSheet()
        if(row >= 2 && column <= 13) // Only add timestamp if edit occured in A2:M
        {
          ssname.getRange('N'+row).setValue(new Date()) // Adding Timestamp in N column
        }
    }
    

    参考:

    onEdit()

    【讨论】:

    • 先生您好,我m so happy for your answer. I ran your script and there's error : ```TypeError: Cannot read property 'range' of undefined 在 Line2,我将 range 定义为 e.range;..
    • 那是因为 onEdit 触发器有那个事件对象 e,当你直接运行它时它里面不包含任何项目,这就是它抛出那个错误的原因,尝试编辑这个脚本绑定的工作表到,就像你在 excel 中做的那样。
    猜你喜欢
    • 2019-06-03
    • 2011-06-12
    • 1970-01-01
    • 2011-07-06
    • 2012-01-21
    • 2020-10-17
    • 2011-03-12
    • 1970-01-01
    • 2012-07-14
    相关资源
    最近更新 更多