问题
Possible Duplicate:
Extract values from HTML TD and Tr
I need to copy the contents of a web webpage to a word/excel sheet using VBA or VB Script (If it hectic the using any programming language)..
So if i give the path of a web page then the system needs to copy the contents of a web page and write it in a Word or excel file.
回答1:
Please post what you allready have next time, i have 2 solutions, choose what best suits your needs, here the one that use word as requested
Option Explicit
'Just change these two lines
Const HTMLFileIn="http://stackoverflow.com/questions/10782976/disable-error-in-vbs"
Const DocFileOut="c:\newfile.doc"
Dim MyWord,oIE
set MyWord=CreateObject("Word.Document")
Set oIE = CreateObject("InternetExplorer.Application")
oIE.Navigate HTMLFileIn
Wscript.Sleep 500
oIE.document.body.createTextRange.execCommand("Copy")
Wscript.Sleep 500
MyWord.Content.Paste
MyWord.SaveAs DocFileOut
MyWord.Close
oIE.Quit
Set oIE = Nothing
set MyWord = Nothing
Wscript.Echo HTMLFileIn & " is now saved as " & DocFileOut
Sub wait
Wscript.Sleep 500
While oIE.busy
Wscript.Sleep 1000
Wend
While oIE.Document.readyState <> "complete"
Wscript.Sleep 1000
Wend
End Sub
If you just want to view the html, here is the simplest solution
url = "http://stackoverflow.com/questions/10782976/disable-error-in-vbs"
set xml = createobject("msxml2.serverxmlhttp.6.0")
with xml
.open "get", url, false
.send
wscript.echo .responsetext
end with
回答2:
See my other answer that uses word. And here another technique and a save as HTML
function download(sFileURL, sLocation, async)
set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.open "GET", sFileURL, async
on error resume next
objXMLHTTP.send()
if err.number = 0 then
do until objXMLHTTP.Status = 200
wscript.echo objXMLHTTP.Status
wcript.sleep(200)
loop
if objXMLHTTP.Status = 200 Then
set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1
objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position = 0
set objFSO = Createobject("Scripting.FileSystemObject")
If objFSO.Fileexists(sLocation) Then objFSO.DeleteFile sLocation
Set objFSO = Nothing
objADOStream.SaveToFile sLocation
objADOStream.Close
set objADOStream = Nothing
download = true
end if
else
download = false
end if
set objXMLHTTP = Nothing
end function
if download("http://stackoverflow.com/questions/10782976/disable-error-in-vbs", "question.html", false) then
wscript.echo "download ok"
else
wscript.echo "download nok"
end if
来源:https://stackoverflow.com/questions/11780366/vb-script-or-vba-code-to-copy-the-contents-of-a-web-webpage-to-a-word-excel-shee