使用VBA比较Excel中的两个单元格

9
我希望您能够比较两个单元格的值并查看它们是否匹配。 我知道如何在Excel中完成此操作,但我不知道如何将其放入VBA代码中。 输入和输出:
  1. 单元格A1的值已经在Excel中。
  2. 手动在单元格B1中输入一个值。
  3. 单击button_click子程序以查看两个单元格上的值是否相同。
  4. 在单元格C1中显示“是”或“否”。
Excel公式:
=IF(A1=B1,"yes","no")
5个回答

4

试试这个:

Sub CompareCells()
    If [a1] = [b1] Then
        [c1] = "yes"
    Else
        [c1] = "no"
    End If
End Sub

将该代码分配给按钮。

谢谢Gary。非常感谢你的帮助! - pexpex223

2
If (Range("A1").Value = Range("B1").Value) Then
    Range("C1").Value = "Yes"
Else
    Range("C1").Value = "No"
End If

1
那不是正确的VBA语法。 - Chrismas007
3
在任何一种语言中,我相当肯定这不是有效的代码。看起来你混合了VBA和C#。而且即使语法正确,这也不能完成问题要求的任务。 - Kai
如果(Range("A1").Value = Range("B1").Value) Then MsgBox ("相等") Else MsgBox ("不相等") End If - Eswin
语法没问题,但仍未回答原始问题。 - Chrismas007
如果(Range("A1").Value = Range("B1").Value)Then Range("C1").Value = "是" Else Range("C1").Value = "否" End If - Eswin

0

您可以在VBA中使用IIF函数。它类似于Excel的IF函数。

[c1] = IIf([a1] = [b1], "Yes", "No")

这不是VBA的标准做法。如果您想使您的代码可移植,我建议使用Gary的答案分配给按钮或者使用我的答案使用onchange事件。 - Chrismas007

0
Sub CompareandHighlight()
    Dim n As Integer
    Dim sh As Worksheets
    Dim r As Range

    n = Worksheets("Indices").Range("E:E").Cells.SpecialCells(xlCellTypeConstants).Count
    Application.ScreenUpdating = False 

    Dim match As Boolean
    Dim valE As Double
    Dim valI As Double
    Dim i As Long, j As Long

    For i = 2 To n
        valE = Worksheets("Indices").Range("E" & i).Value
        valI = Worksheets("Indices").Range("I" & i).Value

        If valE = valI Then

        Else:                           
            Worksheets("Indices").Range("E" & i).Font.Color = RGB(255, 0, 0)
        End If
    Next i

    Application.ScreenUpdating = True
End Sub

0
这是一个 on change 子程序(代码必须放在工作表模块中)。它只会在您更改 B 列中的单元格时激活。
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target is Nothing Then Exit Sub
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Column <> 2 Then Exit Sub
    If Cells(Target.Row, 1).Value = Cells(Target.Row, 2).Value Then
        Cells(Target.Row, 3).Value = "Yes"
    Else
        Cells(Target.Row, 3).Value = "No"
    End If
End Sub

记录一下,这不使用按钮,但它可以实现您的目标:每当手动输入 Col B 中的单元格数据时,计算这两个单元格是否相等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接