VBA 循环单元格查询示例

Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)

'
'从meta区域查找IP对应的行,包含但不限于应用/模块
'
Function FindServiceByIP(ip As Variant) As Long

    Dim Cell As Range, Rng As Range
    Dim endRow As Long
    endRow = Worksheets("meta").Range("B" & Rows.Count).End(xlUp).Row

    Set Rng = Worksheets("meta").Range("D4:D" & Worksheets("meta").Range("D" & Rows.Count).End(xlUp).Row)
    For Each Cell In Rng ' D列 ip列
        With Cell
            If InStr(CStr(.Value2), CStr(ip)) > 0 Then
                FindServiceByIP = Cell.Row
                Exit Function
            End If
        End With
    Next Cell
    FindServiceByIP = 0
End Function


Sub DoSetService()
    On Error Resume Next
    
    Dim IPCell As Range
    Dim endRow As Long
    Dim metaRow As Long
    Dim MoudApp As String
    
    Sheets("访问日志统计").Activate
    endRow = Worksheets("访问日志统计").Range("G" & Rows.Count).End(xlUp).Row
    If endRow < 1 Then Exit Sub

    Application.ScreenUpdating = False
    For Each IPCell In Range("G2:G" & endRow)
        MoudApp = ""
        With IPCell
            metaRow = FindServiceByIP(.Value)
            If metaRow > 0 Then
                MoudApp = Worksheets("meta").Range("B" & metaRow).Value2 & "/" & Worksheets("meta").Range("C" & metaRow).Value2
                Range("I" & IPCell.Row).Value = MoudApp 'I列设置为根据IP查询得到的邮乐资产里的模块/应用
            End If
            '比较邮乐资产的模块应用 与 接口调用时传递的自定义模块应用
            If StrComp(MoudApp, Range("E" & IPCell.Row).Value, 1) <> 0 Then
                Range("J" & IPCell.Row).Value = "×"
            Else
                Range("J" & IPCell.Row).Value = "○"
            End If
            
        End With
    Next IPCell

    Application.ScreenUpdating = True
End Sub

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值