Vba 如何在同一工作表中比较Excel中的两列?

Vba 如何在同一工作表中比较Excel中的两列?,vba,excel,Vba,Excel,我制作这个宏是为了高亮显示同一工作表中的相同值,但我希望它能够一个接一个地显示,而不是一次高亮显示所有数字 Sub series() 'Definición de variables Dim rango As String Dim valor As String Dim resultado As Range Dim primerResultado As String Dim cont As Integer 'Solicitar inform

我制作这个宏是为了高亮显示同一工作表中的相同值,但我希望它能够一个接一个地显示,而不是一次高亮显示所有数字

Sub series()
    'Definición de variables
    Dim rango As String
    Dim valor As String
    Dim resultado As Range
    Dim primerResultado As String
    Dim cont As Integer
    'Solicitar información al usuario
    rango = "A1:XFD1048576"
    valor = InputBox("Ingresa el VALOR a buscar:")
    If valor = "" Then Exit Sub
    'Inicializar contador de coincidencias
    cont = 0   'Primera búsqueda del valor dentro del rango
    Set resultado = Range(rango).Find(What:=valor, _
                    LookIn:=xlValues, _
                    LookAt:=xlWhole, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlNext, _
                    MatchCase:=False, _
                    SearchFormat:=False)
    If Not resultado Is Nothing Then    'Si el resultado de la búsqueda no es vacío
        primerResultado = resultado.Address
        Do                              'Inicia bucle para hacer varias búsquedas
            cont = cont + 1
            resultado.Interior.ColorIndex = 4    'Cambia el color de fondo de la celda
            Set resultado = Range(rango).FindNext(resultado) 'Vuelve a buscar el valor
        Loop While Not resultado Is Nothing And resultado.Address <> primerResultado
    Else
        cont = 0
        MsgBox "Se encontraron " & cont & " coincidencias."
        'valor = InputBox("Ingresa el VALOR a buscar:")
    End If
    Application.Run ("series")
    'valor = InputBox("Ingresa el VALOR a buscar:")
    'Muestra un cuadro de diálogo con el número de coincidencias
    'MsgBox "Se encontraron " & cont & " coincidencias."
End Sub
子系列()
“变量的定义”
朦胧如弦
像绳子一样的暗淡的勇气
Dim resultado As范围
Dim primerResultado作为字符串
作为整数的Dim cont
“乌萨里奥信息律师”
rango=“A1:XFD1048576”
valor=输入框(“Ingresa el valor a母线车:”)
如果valor=“”,则退出Sub
“contador de Conciencias公司
cont=0'兰戈山谷小学
Set resultado=Range(rango).Find(What:=valor_
LookIn:=xlValues_
看:=xlother_
搜索顺序:=xlByRows_
SearchDirection:=xlNext_
MatchCase:=假_
SearchFormat:=False)
如果结果不算什么,那么“结果不算什么”
primerResultado=结果地址
你是不是在说什么
cont=cont+1
resultado.Interior.ColorIndex=4'Cambia el color de fondo de la celda
设置resultado=范围(rango)。FindNext(resultado)'Vuelve a buscar el valor
循环而不是resultado为Nothing,resultado.Address primerResultado
其他的
cont=0
MsgBox“Se encontraron”和cont&CONTANCIAS
'valor=输入框(“Ingresa el valor a客车:”)
如果结束
Application.Run(“系列”)
'valor=输入框(“Ingresa el valor a客车:”)
“这是一个巧合
“MsgBox”Se encontraron“&cont&“concerncias”
端接头

这将要求用户确认突出显示找到的每个单元格(未测试)

选项显式
公共子系列()
变量的定义(变量的定义)
Dim rango作为字符串,valor作为字符串,resultado作为范围
Dim PRIMERSULTADO作为字符串,cont作为整数
'征求信息(从用户处获取信息)
rango=ActiveSheet.UsedRange
valor=输入框(“Ingresa el valor a母线车:”)
如果valor=“”,则退出Sub
cont=0'在Concializar contador de Conciencias中(初始化查找)
“Primera búsqueda del valor dentro del rango(首先搜索范围内的值)
Set resultado=Range(rango).Find(What:=valor_
LookIn:=xlValues_
看:=xlother_
搜索顺序:=xlByRows_
SearchDirection:=xlNext_
MatchCase:=假_
SearchFormat:=False)
如果结果不算什么,那么“结果不算什么”
primerResultado=结果地址
你是不是在说什么
如果MsgBox(“重新升级celular?”,vbYesNo)=vbYes,则
cont=cont+1
resultado.Interior.ColorIndex=4'Cambia el color de fondo de la celda
如果结束
设置resultado=范围(rango)。FindNext(resultado)'Vuelve a buscar el valor
循环而不是resultado为Nothing,resultado.Address primerResultado
其他的
MsgBox“Se encontraron”和cont&CONTANCIAS
如果结束
端接头

这将要求用户确认突出显示找到的每个单元格(未测试)

选项显式
公共子系列()
变量的定义(变量的定义)
Dim rango作为字符串,valor作为字符串,resultado作为范围
Dim PRIMERSULTADO作为字符串,cont作为整数
'征求信息(从用户处获取信息)
rango=ActiveSheet.UsedRange
valor=输入框(“Ingresa el valor a母线车:”)
如果valor=“”,则退出Sub
cont=0'在Concializar contador de Conciencias中(初始化查找)
“Primera búsqueda del valor dentro del rango(首先搜索范围内的值)
Set resultado=Range(rango).Find(What:=valor_
LookIn:=xlValues_
看:=xlother_
搜索顺序:=xlByRows_
SearchDirection:=xlNext_
MatchCase:=假_
SearchFormat:=False)
如果结果不算什么,那么“结果不算什么”
primerResultado=结果地址
你是不是在说什么
如果MsgBox(“重新升级celular?”,vbYesNo)=vbYes,则
cont=cont+1
resultado.Interior.ColorIndex=4'Cambia el color de fondo de la celda
如果结束
设置resultado=范围(rango)。FindNext(resultado)'Vuelve a buscar el valor
循环而不是resultado为Nothing,resultado.Address primerResultado
其他的
MsgBox“Se encontraron”和cont&CONTANCIAS
如果结束
端接头

我的建议是,为要比较的两列设置两个数组,然后在它们之间运行循环比较。我重新格式化了您发布的代码-如果我需要更改任何内容,请告诉我。我的建议是,为要比较的两列设置2个数组,然后在它们之间进行循环比较。这将比你拥有的更快,更容易理解。我重新格式化了你发布的代码-如果我需要更改任何内容,请告诉我
Option Explicit

Public Sub series()
    'Definición de variables (Definition of variables)
    Dim rango As String, valor As String, resultado As Range
    Dim primerResultado As String, cont As Integer

    'Solicitar información al usuario (Get information from the user)
    rango = ActiveSheet.UsedRange
    valor = InputBox("Ingresa el VALOR a buscar:")
    If valor = "" Then Exit Sub

    cont = 0    'Inicializar contador de coincidencias (Initialize Find)

    'Primera búsqueda del valor dentro del rango (First search for value in the range)
    Set resultado = Range(rango).Find(What:=valor, _
                    LookIn:=xlValues, _
                    LookAt:=xlWhole, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlNext, _
                    MatchCase:=False, _
                    SearchFormat:=False)

    If Not resultado Is Nothing Then    'Si el resultado de la búsqueda no es vacío
        primerResultado = resultado.Address
        Do                              'Inicia bucle para hacer varias búsquedas
            If MsgBox("Resaltar celular?", vbYesNo) = vbYes Then
                cont = cont + 1
                resultado.Interior.ColorIndex = 4    'Cambia el color de fondo de la celda
            End If
            Set resultado = Range(rango).FindNext(resultado) 'Vuelve a buscar el valor
        Loop While Not resultado Is Nothing And resultado.Address <> primerResultado
    Else
        MsgBox "Se encontraron " & cont & " coincidencias."
    End If
End Sub