使用vba比较web表数据
我已经使用vba将web表提取到excel中,现在我需要从定价表中提取第一个产品和特定产品(CameraNU.nl)的位置。我有以下获取表的代码使用vba比较web表数据,vba,excel,Vba,Excel,我已经使用vba将web表提取到excel中,现在我需要从定价表中提取第一个产品和特定产品(CameraNU.nl)的位置。我有以下获取表的代码 Sub TableExample() Dim IE As Object Dim doc As Object Dim strURL As String If Range("B2").Value <> "NA" Then strURL = "http://w
Sub TableExample()
Dim IE As Object
Dim doc As Object
Dim strURL As String
If Range("B2").Value <> "NA" Then
strURL = "http://www.kieskeurig.nl/spiegelreflexcamera/nikon/d3200_body/prijzen/bezorgen/1052716#prijzen"
' replace with URL of your choice
Set IE = CreateObject("InternetExplorer.Application")
With IE
.navigate strURL
Do Until .readyState = 4: DoEvents: Loop
Do While .Busy: DoEvents: Loop
Set doc = IE.document
GetAllTables doc
.Quit
End With
Else
Range("B1").Value = "Shopping Channel"
Range("C1").Value = "Competitor Website"
Range("D1").Value = "Competitor Price"
Range("B2").Value = "kieskeurig.nl"
Range("C2").Value = "Product Not Available"
Range("D2").Value = "Product Not Available"
Range("E2").Value = "Product Not Available"
Range("F2").Value = "Product Not Available"
End If
End Sub
Sub GetAllTables(doc As Object)
' get all the tables from a webpage document, doc, and put them in a new worksheet
Dim ws As Worksheet
Dim rng As Range
Dim tbl As Object
Dim rw As Object
Dim cl As Object
Dim tabno As Long
Dim nextrow As Long
Dim i As Long
Set ws = Sheets("Sheet1")
On Error GoTo Err1:
For Each tbl In doc.getElementsByTagName("TABLE")
tabno = tabno + 1
nextrow = nextrow + 1
Set rng = ws.Range("B" & nextrow)
rng.Offset(, -1) = "Table " & tabno
For Each rw In tbl.Rows
colno = 1
For Each cl In rw.Cells
If colno = 1 And nextrow > 1 Then
Set classColl = doc.getElementsByClassName("shopLogoX")
Set imgTgt = classColl(nextrow - 2).getElementsByTagName("img")
rng.Value = imgTgt(0).getAttribute("alt")
Else
rng.Value = cl.innerText
End If
Set rng = rng.Offset(, 1)
i = i + 1
colno = colno + 1
Next cl
nextrow = nextrow + 1
Set rng = rng.Offset(1, -i)
i = 0
Next rw
Next tbl
Err1:
Call comp
End Sub
Sub comp()
Dim i As Integer
Dim j As Integer
Dim k As String
Dim l As String
Dim m As String
l = Range("B2").Value
m = Range("F2").Value
i = 2
For i = 2 To 50
If Range("B" & i).Value = "Foto Konijnenberg" Then
j = i
k = Range("F" & i).Value
End If
Next i
Range("B1:h50").Value = ""
Range("k24").Value = j
Range("l25").Value = k
Range("B1").Value = "Shopping Channel"
Range("C1").Value = "Competitor Website"
Range("D1").Value = "Competitor Price"
Range("E1").Value = "Our Position"
Range("F1").Value = "Our Price"
Range("B2").Value = "kieskeurig.nl"
Range("C2").Value = l
Range("D2").Value = m
Range("E2").Value = Range("K24").Value
Range("F2").Value = Range("L25").Value
Range("K24").Value = ""
Range("L25").Value = ""
End Sub
子表示例()
模糊的物体
Dim doc作为对象
暗弦
如果范围(“B2”)。值“NA”,则
strURL=”http://www.kieskeurig.nl/spiegelreflexcamera/nikon/d3200_body/prijzen/bezorgen/1052716#prijzen"
'替换为您选择的URL
设置IE=CreateObject(“InternetExplorer.Application”)
与IE
.导航strURL
Do Until.readyState=4:DoEvents:Loop
请稍候。忙碌:DoEvents:循环
Set doc=IE.document
GetAllTables文档
退出
以
其他的
范围(“B1”).Value=“购物频道”
范围(“C1”).Value=“竞争对手网站”
范围(“D1”).Value=“竞争对手价格”
范围(“B2”).Value=“kieskeurig.nl”
范围(“C2”).Value=“产品不可用”
范围(“D2”).Value=“产品不可用”
范围(“E2”).Value=“产品不可用”
范围(“F2”).Value=“产品不可用”
如果结束
端接头
子GetAllTables(文档作为对象)
'从网页文档、文档中获取所有表,并将它们放入新的工作表中
将ws设置为工作表
变暗rng As范围
作为对象的Dim tbl
作为对象的变暗rw
作为对象的dimcl
暗淡的塔布诺一样长
暗淡的下一步一样长
我想我会坚持多久
设置ws=图纸(“图纸1”)
出现错误时转到错误1:
对于doc.getElementsByTagName(“表”)中的每个tbl
塔布诺=塔布诺+1
nextrow=nextrow+1
设置rng=ws.Range(“B”和nextrow)
rng.偏移量(,-1)=“表”和表号
对于tbl.行中的每个rw
colno=1
对于rw.单元格中的每个cl
如果colno=1且nextrow>1,则
Set classColl=doc.getElementsByClassName(“shopLogoX”)
设置imgTgt=classColl(nextrow-2).getElementsByTagName(“img”)
rng.Value=imgTgt(0.getAttribute(“alt”)
其他的
rng.Value=cl.innerText
如果结束
设置rng=rng偏移量(,1)
i=i+1
colno=colno+1
下一个cl
nextrow=nextrow+1
设置rng=rng偏移量(1,-i)
i=0
下一个rw
下一个tbl
错误1:
呼叫公司
端接头
副公司()
作为整数的Dim i
作为整数的Dim j
调暗k为字符串
把l调成线
把m调成线
l=范围(“B2”).值
m=范围(“F2”).值
i=2
对于i=2到50
如果范围为(“B”&i).Value=“Foto Konijnenberg”,则
j=i
k=范围(“F”和i).值
如果结束
接下来我
范围(“B1:h50”)。值=“”
范围(“k24”)。值=j
范围(“l25”)。值=k
范围(“B1”).Value=“购物频道”
范围(“C1”).Value=“竞争对手网站”
范围(“D1”).Value=“竞争对手价格”
范围(“E1”).Value=“我们的位置”
范围(“F1”).Value=“我方价格”
范围(“B2”).Value=“kieskeurig.nl”
范围(“C2”)。值=l
范围(“D2”)。值=m
范围(“E2”).值=范围(“K24”).值
范围(“F2”).值=范围(“L25”).值
范围(“K24”).Value=“”
范围(“L25”).Value=“”
端接头
如果你运行这个宏,你会得到我想要的确切结果,但是我需要比较价格,而不使用comp子程序。谁能帮我一下吗