Vba 多次在同一工作表中查找单元格值以及查找到的值旁边的值

Vba 多次在同一工作表中查找单元格值以及查找到的值旁边的值,vba,excel,Vba,Excel,这是我输入文件中的数据示例。我有一个带有命令按钮的Excel工作表,单击它将激活包含我输入的sheet2 A列是我的来源。我想检查该列中的每个元素(A1、A2等),并检查是否在表中找到它。如果找到了,我需要选中“选择下一个单元格值”,并将其与找到的下一个单元格值进行比较。如果两者相同,则应将两个A2、B2值复制到表3中。 我必须在sheet2中再次搜索,看看是否找到它,然后这次我需要检查当前元素右侧的2个单元格,以及元素。将它们复制到第3页 例如。 A2=fc1/1,B2=Test\u port

这是我输入文件中的数据示例。我有一个带有命令按钮的Excel工作表,单击它将激活包含我输入的sheet2

A列是我的来源。我想检查该列中的每个元素(A1、A2等),并检查是否在表中找到它。如果找到了,我需要选中“选择下一个单元格值”,并将其与找到的下一个单元格值进行比较。如果两者相同,则应将两个A2、B2值复制到表3中。
我必须在sheet2中再次搜索,看看是否找到它,然后这次我需要检查当前元素右侧的2个单元格,以及元素。将它们复制到第3页

例如。
A2=fc1/1,B2=Test\u port\u description\u 1,c2=21:00:00:12:34:56:7
首先,我要选择A2值,并尝试在工作表中找到它。
当在f2=fc1/1中找到find A2=fc1/1时,现在我需要检查 B2值等于G2值。如果两者相同,则将A2和B2值复制到表3

我想再次继续搜索A2=fc1/1,找到H5=fc1/1,abde。现在我需要检查C2=21:00:00:00:12:34:56:78是否与H6=21:00:00:00:12:34:56:78相同,如果相同,则复制找到值的下一列中的值C3,如果未找到,则为单元格提供颜色编码。。如第3页第二列为红色,第三列为黄色…

选项
Source Port #   Source Port Description Source port Pwwn            Switch Port     Switch Port Description Flolgi port Flogi pwwn
fc1/1   Test_port_description_1 21:00:00:00:12:34:56:78         fc1/1   Test_port_description_1     
fc1/2   Test_port_description_2 21:00:00:00:12:34:56:79         fc1/2   Test_port_description_2 fc1/0,abde  21:00:00:00:12:34:56:78
fc1/3   Test_port_description_3 21:00:00:00:12:34:56:80         fc1/3   Test_port_description   fc1/2,abde  21:00:00:00:12:34:56:79
fc1/4   Test_port_description_4 21:00:00:00:12:34:56:81         fc1/4   Test_port_description_4 fc1/1,abde  21:00:00:00:12:34:56:80
fc1/5   Test_port_description_5 21:00:00:00:12:34:56:82         fc1/5   Test_port_description_5 fc1/4,abde  21:00:00:00:12:34:56:81
                            fc1/5,abde  21:00:00:00:12:34:56:82
私有子查找端口PWW_单击() Dim SourcePort As范围 将第一个地址设置为字符串 暗i为长,j为长,N为长 作为整数的Dim计数器 将工作表调整为工作表 '正在停止应用程序警报 Application.DisplayAlerts=False '或者您可以提及图纸名称 错误转到SheetNotFound时: 工作表(“最终结果表”)。删除 '创建新的结果工作表。 ThisWorkbook.Worksheets.Add(在:=工作表(“输入工作表”)之后)。Name=“最终结果表” '完成任务后启用应用程序警报 Application.DisplayAlerts=True 设置工作表=活动工作簿。工作表(2) 工作表。激活 N=工作表.单元格(Rows.Count,“A”).End(xlUp).行 'MsgBox(N) 对于i=1到N 'MsgBox(工作表单元格(i,“A”).值) 'MsgBox(工作表单元格(i,“A”)。偏移量(0,1)。值) 设置SourcePort=WorkingSheet.Cells.Find(WorkingSheet.Cells(i,“A”).Value,WorkingSheet.Cells(i,“A”),LookIn:=xlValues) 'MsgBox(SourcePort.Address) firstaddress=SourcePort.Address 做 如果(InStr(SourcePort.Value,“,”),则 如果WorkingSheet.Cells(i,“A”).Offset(0,2).Value=SourcePort.Offset(0,1).Value则 此工作簿.Worksheets(3).单元格(i,“A”).Value=工作表.Cells(i,“A”).Value 此工作簿。工作表(3)。单元格(i,“A”)。偏移量(0,2)=工作表。单元格(i,“A”)。偏移量(0,2)。值 其他的 此工作簿.Worksheets(3).单元格(i,“A”).Value=工作表.Cells(i,“A”).Value 此工作簿。工作表(3)。单元格(i,“A”)。偏移量(0,2)。值=工作表。单元格(i,“A”)。偏移量(0,2)。值 此工作簿。工作表(3)。单元格(i,“A”)。偏移量(0,2)。Interior.Color=RGB(255,126,135) 如果结束 其他的 如果WorkingSheet.Cells(i,“A”).Offset(0,1).Value=SourcePort.Offset(0,1).Value则 此工作簿.Worksheets(3).单元格(i,“A”).Value=工作表.Cells(i,“A”).Value 此工作簿.工作表(3).单元格(i,“A”).偏移量(0,1)=工作表.单元格(i,“A”).偏移量(0,1).值 其他的 此工作簿.Worksheets(3).单元格(i,“A”).Value=工作表.Cells(i,“A”).Value 此工作簿。工作表(3)。单元格(i,“A”)。偏移量(0,1)。值=工作表。单元格(i,“A”)。偏移量(0,1)。值 此工作簿。工作表(3)。单元格(i,“A”)。偏移量(0,1)。Interior.Color=RGB(255,0,0) 如果结束 如果结束 设置SourcePort=WorkingSheet.Cells.FindNext(SourcePort) 循环而非SourcePort为Nothing和firstaddress SourcePort.Address MsgBox(SourcePort.Value) 接下来我 出口接头 未找到的表格: MsgBox(“未找到最终结果工作表”) 端接头
我能够将正确的数据发送到sheet3,但在为未找到的值设置颜色代码时遇到困难。我无法按照逻辑改变颜色。
    Option Explicit
Private Sub FindingPortPwwn_Click()

Dim SourcePort As Range
Dim firstaddress As String
Dim i As Long, j As Long, N As Long
Dim counter As Integer
Dim WorkingSheet As Worksheet

'Stopping Application Alerts
Application.DisplayAlerts = False

'OR You can mention the Sheet name
On Error GoTo SheetNotFound:
Sheets("Final Results Sheet").Delete

'Creating a New Results Worksheet.
ThisWorkbook.Worksheets.Add(After:=Worksheets("Input_Worksheet")).Name = "Final Results Sheet"



'Enabling Application alerts once we are done with our task
Application.DisplayAlerts = True




Set WorkingSheet = ActiveWorkbook.Worksheets(2)
WorkingSheet.Activate
N = WorkingSheet.Cells(Rows.Count, "A").End(xlUp).Row

'MsgBox (N)
For i = 1 To N
    'MsgBox (WorkingSheet.Cells(i, "A").Value)
    'MsgBox (WorkingSheet.Cells(i, "A").Offset(0, 1).Value)
  Set SourcePort = WorkingSheet.Cells.Find(WorkingSheet.Cells(i, "A").Value, WorkingSheet.Cells(i, "A"), LookIn:=xlValues)
    'MsgBox (SourcePort.Address)
    firstaddress = SourcePort.Address
    Do
    If (InStr(SourcePort.Value, ",")) Then
       If WorkingSheet.Cells(i, "A").Offset(0, 2).Value = SourcePort.Offset(0, 1).Value Then
            ThisWorkbook.Worksheets(3).Cells(i, "A").Value = WorkingSheet.Cells(i, "A").Value
            ThisWorkbook.Worksheets(3).Cells(i, "A").Offset(0, 2) = WorkingSheet.Cells(i, "A").Offset(0, 2).Value

       Else
            ThisWorkbook.Worksheets(3).Cells(i, "A").Value = WorkingSheet.Cells(i, "A").Value
            ThisWorkbook.Worksheets(3).Cells(i, "A").Offset(0, 2).Value = WorkingSheet.Cells(i, "A").Offset(0, 2).Value
            ThisWorkbook.Worksheets(3).Cells(i, "A").Offset(0, 2).Interior.Color = RGB(255, 126, 135)
        End If


    Else
      If WorkingSheet.Cells(i, "A").Offset(0, 1).Value = SourcePort.Offset(0, 1).Value Then
        ThisWorkbook.Worksheets(3).Cells(i, "A").Value = WorkingSheet.Cells(i, "A").Value
        ThisWorkbook.Worksheets(3).Cells(i, "A").Offset(0, 1) = WorkingSheet.Cells(i, "A").Offset(0, 1).Value

      Else
        ThisWorkbook.Worksheets(3).Cells(i, "A").Value = WorkingSheet.Cells(i, "A").Value
        ThisWorkbook.Worksheets(3).Cells(i, "A").Offset(0, 1).Value = WorkingSheet.Cells(i, "A").Offset(0, 1).Value
        ThisWorkbook.Worksheets(3).Cells(i, "A").Offset(0, 1).Interior.Color = RGB(255, 0, 0)
      End If
    End If

    Set SourcePort = WorkingSheet.Cells.FindNext(SourcePort)
    Loop While Not SourcePort Is Nothing And firstaddress <> SourcePort.Address
    MsgBox (SourcePort.Value)  
Next i
    Exit Sub
    SheetNotFound:
      MsgBox (" Final Results Worksheet not Found")
    End Sub