excel vba - 在网络查询中创建参数和循环
问题描述:
我是编程新手,我试图通过我的网页查询工作。excel vba - 在网络查询中创建参数和循环
代码中,我迄今是这样的......
Sub webquery1()
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://dealoz.com/prod.pl?cat_id=&op=buy&op2=&lang=en-us&search_country=us&shipto=us&cur=usd&zip=&nw=y&class=&pqcs=&pkcs=&quantity=&shipping_type=&sort=&catby=&query=[""089203579X""]&ean=[""9780892035793""]&mpn=&asin=&rcount=2" _
, Destination:=Range("A1"))
.Name = _
"prod.pl?cat_id=&op=buy&op2=&lang=en-us&search_country=us&shipto=us&cur=usd&zip=&nw=y&class=&pqcs=&pkcs=&quantity=&shipping_type=&sort=&catby=&query=[""089203579X""]&ean=[""9780892035793""]&mpn=&asin=&rcount=2"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "10"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
我想参数添加到该网站查询,例如,该网站将采取ISBN编号从我对另一个Excel列表片。 每个isbn号码将进入网络查询并将信息输入到单元格中。然后代码将重复,直到它通过我列表中的所有isbn数字。 感谢您的任何帮助!
答
没有做这件事,并测试它(不Excel中对我的Ubuntu箱),你可以这样开始
Sub webquery1(byval isbn10 as string, byval isbn13 as string)
然后用
& isbn10 & chr(34) & chr(34) & "]&ean=[" & chr(34) & chr(34) & isbn13 &
可以更换
089203579X""]&ean=[""9780892035793
不得不平衡所有的字面双引号和字母(34),但你会到达那里。然后你需要一个子迭代另一个表中的isbns并调用这个子类。你真的需要两种类型吗?他们中的一个有时会失踪?
Sub iter_thru_isbn_sheet_calling_webquery()
dim range_isbns as range
dim c as range
set range_isbns = sheets("whateveritscalled").range("addressgoeshere")
For each c in range_isbns
if not c.value = "" then '<---- better way to use regexp but you can research
call webquery1(c.value, c.offset(0,1).value) '<---if 10s and 13s side-by-side
doevents '<---- query can take awhile. I don't do web queries in vba, so ??
end if
next c
End Sub
你需要解决如何同时收集ISBN和防止循环访问,并通过您已经捆绑了它的“孪生”的系列名或10。如果仅仅将详细信息记录到文本文件中,还要养成为每个子程序编写错误处理程序的习惯。对于Excel的东西先去这些家伙:ozgrid,mrexcel,Pearson。我会张贴链接,但现在是时候了。祝你好运。