如果单元格为空白,则清除 VBA 中另一个单元格代码的内容

Posted

技术标签:

【中文标题】如果单元格为空白,则清除 VBA 中另一个单元格代码的内容【英文标题】:if Cell is Blank then clear content of another cell Code in VBA 【发布时间】:2020-02-17 22:22:42 【问题描述】:

在我的工作表中,当我更新 D 列中的单元格时,C 列中的单元格将显示更新日期,现在我需要如果我删除 D 单元格中的信息来删除 C 单元格中的信息,而不是像 VBA 代码那样的公式 代码如下:

 `Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column <> 4 Then Exit Sub
  If Target.Cells.Count > 1 Then Exit Sub
   With Target.Offset(0, -1)
    .Value = Now
     .NumberFormat = " MM/DD/YY hh:mm Am/PM"
  End With

   Dim RangeA As Range
   Set RangeA = Range("D10:D10000")
    If Application.CountBlank(RangeA) = RangeA.Cells.Count Then
    Range("C10:C10000").ClearContents
     End If
     End Sub`

【问题讨论】:

【参考方案1】:

我建议添加if-statement 来支持您的活动,例如:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 4 Then Exit Sub
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Value <> "" then
        With Target.Offset(0, -1) 
            .Value = Now
            .NumberFormat = " MM/DD/YY hh:mm Am/PM"
        End With
    Else
        Target.Offset(,-1).ClearContents
    End If
End Sub

【讨论】:

@Aboudezoua 精彩;如果这已经解决了您的问题,请标记为您的答案(我的帖子左侧的复选标记)。

以上是关于如果单元格为空白,则清除 VBA 中另一个单元格代码的内容的主要内容,如果未能解决你的问题,请参考以下文章

当某些单元格为空白时,VBA 代码继续使用文本到列进行格式化

如果 Range 包含任何值,VBA 返回 1 - 不工作

如果当前单元格在 VBA 中为空,则获取相邻单元格的值

如果 A 列中的单元格为空白,则针对不同工作表中的数据集查找 B 列

如果某列范围内的所有单元格均为空白,则删除 Excel 中的一行

将多个值写入一个单元格 - VBA