仅当单元格值更改时,如何执行指令?

里卡多·马丁(Ricardo Martin)

我有一个ByVal代码来清除表内特定范围的内容,它可以工作。但是,如果范围值(内容)发生变化,则需要为执行指令添加条件,而不是仅将光标放在其上。

另外,有人知道如何在VBA中引用表列吗?现在,我使用的估计范围是“ C1:C999”,但我想使用他的名字“ A_ [OPERATION]”。

这是代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

   If Not Application.Intersect(Range("C1:C999"), Range(Target.Address)) Is Nothing Then
    
       Range(Selection, Selection.End(xlToRight)).ClearContents

   End If

End Sub
VBasic2008

工作表变更

  • 调整表名称(tName)和标题(列)名称(hName)。
  • 我已经对其进行了调整,以清除列后单元格中的内容。
  • 如果您确实还需要清除该列的内容,请替换cel.Offset(, 1)cel
  • 在表格中,如果手动或通过VBA更改了列中的值,则当前设置将自动清除指定列右侧的所有单元格的内容。如果该列包含公式,则将无法使用。还支持非连续删除。

编码

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    
    Const ProcName As String = "Worksheet_Change"
    On Error GoTo clearError
    
    Const tName As String = "A_"
    Const hName As String = "OPERATION"
    
    Dim rng As Range
    Set rng = Range(tName & "[" & hName & "]")
    Set rng = Intersect(rng, Target)
    If rng Is Nothing Then GoTo ProcExit
    
    Application.EnableEvents = False
    
    With ListObjects(tName).HeaderRowRange
        Dim LastColumn As Long
        LastColumn = .Columns(.Columns.Count).Column
    End With
    Dim cel As Range
    For Each rng In rng.Areas
        For Each cel In rng.Cells
            With cel.Offset(, 1)
                .Resize(, LastColumn - .Column + 1).ClearContents
            End With
        Next cel
    Next rng

CleanExit:
    Application.EnableEvents = True
    GoTo ProcExit

clearError:
    Debug.Print "'" & ProcName & "': " & vbLf _
              & "    " & "Run-time error '" & Err.Number & "':" & vbLf _
              & "        " & Err.Description
    On Error GoTo 0
    GoTo CleanExit

ProcExit:

End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

列值更改时删除线关联的单元格

来自分类Dev

单元格值更改时VBA不运行

来自分类Dev

当单元格值更改时,然后运行宏

来自分类Dev

RadGridView中单元格的值更改时如何触发事件?

来自分类Dev

当我在单元格 A1 中进行任何更改时,如何将单元格 A2 的值更改为“Today()”?

来自分类Dev

查询表列更改时如何保留单元格引用

来自分类Dev

单元格中的值更改时,将数据插入同一行

来自分类Dev

范围中任何单元格中的值更改时自动运行Excel VBA

来自分类Dev

值更改时将更新/时间戳记入单元格

来自分类Dev

强制Excel公式在不相关的单元格值更改时更新

来自分类Dev

单元格样式绑定不会在值更改时更新

来自分类Dev

单元格值更改时刷新特定的数据透视表

来自分类Dev

在单元格值更改时自动触发宏 |Excel|VBA|

来自分类Dev

当单元格值更改时更新下拉菜单 (Excel)

来自分类Dev

如何根据单元格值更改DataGrid单元格背景色

来自分类Dev

如何根据单元格值更改php中的单元格表颜色?

来自分类Dev

React:如何根据React表中的单元格值更改表单元格背景

来自分类Dev

如何根据单元格值更改php中的单元格表颜色?

来自分类Dev

如何根据单元格值更改wpf Databound网格单元格?

来自分类Dev

数据表...如何根据表的单元格值更改单元格的颜色

来自分类Dev

如何通过VBA根据其他单元格值更改单元格的背景颜色

来自分类Dev

当单元格值更改时,将单元格值更改的列复制到同一范围内的另一个工作表

来自分类Dev

DataGridView单元格值更改

来自分类Dev

DataGridView单元格值更改

来自分类Dev

在单元格更改时执行代码的VBA无法处理名称更改

来自分类Dev

我想在第一个单元格值更改时更改表其他单元格值

来自分类Dev

当用户仍在键入单元格并且单元格值更改时,Excel引发异常HRESULT:0x800A03EC

来自分类Dev

单元格值更改时使用多个工作表选项卡发送电子邮件通知

来自分类Dev

如何在Excel中制作一个单元格以根据其他单元格的值更改颜色?

Related 相关文章

  1. 1

    列值更改时删除线关联的单元格

  2. 2

    单元格值更改时VBA不运行

  3. 3

    当单元格值更改时,然后运行宏

  4. 4

    RadGridView中单元格的值更改时如何触发事件?

  5. 5

    当我在单元格 A1 中进行任何更改时,如何将单元格 A2 的值更改为“Today()”?

  6. 6

    查询表列更改时如何保留单元格引用

  7. 7

    单元格中的值更改时,将数据插入同一行

  8. 8

    范围中任何单元格中的值更改时自动运行Excel VBA

  9. 9

    值更改时将更新/时间戳记入单元格

  10. 10

    强制Excel公式在不相关的单元格值更改时更新

  11. 11

    单元格样式绑定不会在值更改时更新

  12. 12

    单元格值更改时刷新特定的数据透视表

  13. 13

    在单元格值更改时自动触发宏 |Excel|VBA|

  14. 14

    当单元格值更改时更新下拉菜单 (Excel)

  15. 15

    如何根据单元格值更改DataGrid单元格背景色

  16. 16

    如何根据单元格值更改php中的单元格表颜色?

  17. 17

    React:如何根据React表中的单元格值更改表单元格背景

  18. 18

    如何根据单元格值更改php中的单元格表颜色?

  19. 19

    如何根据单元格值更改wpf Databound网格单元格?

  20. 20

    数据表...如何根据表的单元格值更改单元格的颜色

  21. 21

    如何通过VBA根据其他单元格值更改单元格的背景颜色

  22. 22

    当单元格值更改时,将单元格值更改的列复制到同一范围内的另一个工作表

  23. 23

    DataGridView单元格值更改

  24. 24

    DataGridView单元格值更改

  25. 25

    在单元格更改时执行代码的VBA无法处理名称更改

  26. 26

    我想在第一个单元格值更改时更改表其他单元格值

  27. 27

    当用户仍在键入单元格并且单元格值更改时,Excel引发异常HRESULT:0x800A03EC

  28. 28

    单元格值更改时使用多个工作表选项卡发送电子邮件通知

  29. 29

    如何在Excel中制作一个单元格以根据其他单元格的值更改颜色?

热门标签

归档