首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA代码:如果单元x=单元y清除单元y

VBA代码:如果单元x=单元y清除单元y
EN

Stack Overflow用户
提问于 2019-07-16 22:46:50
回答 3查看 52关注 0票数 0

我有一张表格,用来分配人们特定的职责。这将自动填充来自VB长期运行的名称。在不太可能的情况下,少于4个人在一个特定的班次,我的代码将结束将相同的名字放在两个单元格,而不是只有一个。(由于我是如何将它与一些串联在一起工作的)

我想在代码运行后进行错误检查,看看上面的单元格中是否出现了相同的名称。如果是这样,我想清除上面的单元格。

带有中名称的单元格必须是VB中的范围,因为它们跨越多个列。

我已经尝试了下面不能运行的代码,我觉得检查一个单元格是否等于另一个单元格以及是否清除指定的单元格应该是相当直接的。我就是不能让它工作

代码语言:javascript
复制
Sub errorcatch()

    If Range("F33:G33").Value = Range("F32:G32").Value Then

      Range("F32:G32").Clear

    End If

End Sub
EN

回答 3

Stack Overflow用户

发布于 2019-07-16 22:51:08

代码语言:javascript
复制
If Range("F33").Value = Range("F32").Value And Range("G33").Value = Range("G32").Value Then
    Range("F32:G32").Clear
End If
票数 1
EN

Stack Overflow用户

发布于 2019-07-16 23:06:38

这将检查列F中的单元格是否与下面的单元格匹配,以及列G中的单元格是否与下面的单元格匹配。

它将沿着F列中的每个单元格向下工作,直到到达数据的底部。

代码语言:javascript
复制
Public Sub Test()

    Dim rData As Range
    Dim rCell As Range

    With ThisWorkbook.Worksheets("Sheet1")
        'Range will go from F1 to bottom of data in column F (column 6).
        Set rData = .Range("F1", .Cells(.Rows.Count, 6).End(xlUp))
    End With

    'Cycle through each cell in rData.
    For Each rCell In rData
        'If rCell is the same as the cell below, and the cell to the right is the same
        'as the cell to the right and one cell down then clear the contents.
        If rCell = rCell.Offset(1) And rCell.Offset(, 1) = rCell.Offset(1, 1) Then
            rCell.Resize(, 2).ClearContents
        End If
    Next rCell

End Sub

进一步阅读:Offset

票数 0
EN

Stack Overflow用户

发布于 2019-07-16 22:56:31

您可以尝试仅引用单元格值,而不是范围:

代码语言:javascript
复制
Sub errorcatch()
     [g32] = IIf ([g33] = [g32], "", [g32]) 
End Sub
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57059967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档