excel - 如果单元格 A 为空,则清除 B 至 F 列的内容

标签 excel vba

我有一个工作表,其值取决于单元格 A。如果 A 列中的行包含一个值,则 B 列到 H 列的单元格将相应更改。

如果 A 列的单元格为空,我想重置 D 列到 F 列的单元格。

我写下了以下VBA代码

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim n As Integer
    For n = 5 To 75
        Application.EnableEvents = False
        If VarType(Cells(n, 1)) = vbEmpty Then
           Cells(n, 4).ClearContents
           Cells(n, 5).ClearContents
           Cells(n, 6).ClearContents
        Application.EnableEvents = True
        End If
    Next n
End Sub

“FOR”循环很烦人,并且使 Excel 在输入任何单元格后暂停 1 秒或更长时间,任何人都可以帮助我更正上面的代码,以在没有“FOR”循环的情况下执行我需要执行的操作.

最佳答案

您正在使用 Worksheet_Change 事件,并且每次发生更改时都会迭代 70 行。对于此类问题,这是一个不好的方法,这就是出现延迟的原因。

相反,尝试

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim n As Long

    If Target.Column = 1 Then
        If IsEmpty(Cells(Target.Row, 1)) Then
               Range("B" & Target.Row & ":F" & Target.Row).ClearContents
        End If
    End If
End Sub

只有当您从 A 列中删除值时,这才会清除单元格 => 当 A 列中的单元格为空时

关于excel - 如果单元格 A 为空,则清除 B 至 F 列的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23890943/

相关文章:

.net - 使用 Excel 对象模型在 Excel 中内联单元格格式

excel - 从 Excel 回复 Outlook 邮件

xml - VBA - 显示每个节点及其来自 XML 的值

vba - 循环访问另一个工作簿中的单元格以复制特定值

excel - 从 Outlook 电子邮件主题中提取部分内容,然后在 Excel 电子表格中找到它

excel - VBA Excel 用户窗体。如何判断哪个图片被点击了

vba - 在 Windows 7 中保存 Excel 加载项

excel - 将 ssis 包中的数据导出到 Excel 目标时出错

excel - 如果线性规划决策变量 > 0 则 >= 3000

sql - 无法在使用 Access db 的 VBA Excel 查询中使用变量作为列名