如何用excel宏的方法,批量检测excel中A列网址的有效性,并且把是否有效写入B列对应行?
要使用Excel宏批量检测A列网址的有效性,并将结果写入B列,可以使用VBA代码。以下是一个示例代码,它通过发送HTTP请求来检测网址是否有效,并将结果写入B列。
步骤:
打开Excel文件,按
Alt + F11
打开VBA编辑器。在VBA编辑器中,点击
插入
>模块
,插入一个新模块。将以下代码粘贴到模块中:
Sub CheckURLs()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim url As String
Dim http As Object
Dim response As String
Dim isValid As Boolean
' 设置工作表
Set ws = ThisWorkbook.Sheets(1) ' 假设操作的是第一个工作表
' 获取A列的最后一行
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' 创建XMLHTTP对象
Set http = CreateObject("MSXML2.XMLHTTP")
' 遍历A列的每一行
For i = 1 To lastRow
url = ws.Cells(i, 1).Value ' 获取A列的网址
If url <> "" Then
On Error Resume Next
http.Open "GET", url, False
http.Send
response = http.Status
On Error GoTo 0
' 判断状态码是否为200(有效)
If response = 200 Then
isValid = True
Else
isValid = False
End If
' 将结果写入B列
ws.Cells(i, 2).Value = IIf(isValid, "有效", "无效")
Else
ws.Cells(i, 2).Value = "无网址"
End If
Next i
' 释放对象
Set http = Nothing
MsgBox "检测完成!"
End Sub
代码说明:
Set ws = ThisWorkbook.Sheets(1)
:假设操作的是第一个工作表,你可以根据需要修改为其他工作表。lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
:获取A列的最后一行。http.Open "GET", url, False
:发送HTTP GET请求来检测网址是否有效。If response = 200 Then
:如果状态码为200,表示网址有效。ws.Cells(i, 2).Value = IIf(isValid, "有效", "无效")
:将检测结果写入B列。
运行宏:
按
Alt + F8
打开宏对话框。选择
CheckURLs
宏并点击运行
。
注意事项:
该代码仅检测网址是否可以访问(状态码200),不处理重定向或其他状态码。
如果网址较多,检测可能需要一些时间。
确保你的Excel启用了宏功能。
运行后,B列将显示每个网址是否有效。