使用vba比较web表数据

使用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

我已经使用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://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子程序。谁能帮我一下吗