Excel VBA删除行不执行vba脚本

时间:2016-06-14 10:40:47

标签: excel excel-vba vba

美好的一天,我得到了一组代码如下:

function addition() {
  var a = document.getElementById("1st").value;
  var b = document.getElementById("2nd").value;
  var check = /^[0-9]*$/;
  if (!(a.search(check))) {
    window.alert("Please enter only numbers!");
  }     
  var c = Number(a) + Number(b);
  document.getElementById("answer").innerHTML = c;

}

这应该更新列" G"列中的当前日期和时间" H"以前的内容" C"如果在列" C"中检测到更改。 虽然这段代码工作正常,但我遇到了一个问题,即在表格中间删除一行数据会将下一行向上移动到已删除的行,但它会更新列" G"和" H"同样。

有没有办法防止这种情况?谢谢。

2 个答案:

答案 0 :(得分:0)

这将解决一些您的问题:

$scope.objectTypes = ["something"];

答案 1 :(得分:0)

我将摆脱public变量和Worksheet_SelectionChange事件宏。在记录更改后的值后,Application.Undo可以在Worksheet_Change事件宏中应用。{/ p>

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C:C")) Is Nothing Then
        On Error GoTo bm_Safe_Exit
        Application.EnableEvents = False
        Dim rng As Range, vCEEs As Variant
        vCEEs = Range(Cells(1, "C"), Cells(Rows.Count, "C").End(xlUp)).Value
        Application.Undo
        For Each rng In Intersect(Target, Range("C:C"))
            Range("G" & rng.Row) = Now()
            Range("H" & rng.Row) = Range("C" & rng.Row)
            Range("C" & rng.Row) = vCEEs(rng.Row, 1)
        Next rng
    End If
bm_Safe_Exit:
    Application.EnableEvents = True
End Sub

这应该能够在将多个值粘贴到C列后继续存在,但是您可能会丢失粘贴到其他列中的值。