As part to extract data form web I use following (problematic) code.
Sub USPTOAbstHTML1()
Application.ScreenUpdating = False
Dim Rng As Range, Tbl As table, StrTxt As String, HttpReq As Object, i As Long, oHtml As MSHTML.HTMLDocument, IE As SHDocVw.InternetExplorer
Set HttpReq = CreateObject("Microsoft.XMLHTTP")
Set oHtml = New HTMLDocument
Set IE = CreateObject("InternetExplorer.Application")
With ActiveDocument.Range
For Each Tbl In .Tables
With Tbl
For i = 1 To .Rows.Count
With .Cell(i, 2).Range
If .Hyperlinks.Count > 0 Then
MsgBox .Hyperlinks(1).Address
HttpReq.Open "GET", .Hyperlinks(1).Address, False
HttpReq.send
oHtml.body.innerHTML = HttpReq.responseText
MsgBox HttpReq.responseText
StrTxt = oHtml.getElementsByClassName("claim").Item.innerHTML
With IE
.Visible = False
.navigate "about:blank"
.Document.body.innerHTML = StrTxt
.Document.execCommand "SelectAll"
.Document.execCommand "Copy"
End With
With Tbl.Cell(i, 5).Range
Selection.PasteAndFormat (wdPasteDefault)
End With
End If
.Collapse wdCollapseEnd
.Find.Execute
End With
Next
End With
Next
End With
Set HttpReq = Nothing
Application.ScreenUpdating = True
End Sub
The problem in above code is, I could not find any method by which i could add clipboard content to specific location ie Tbl.Cell(i, 5).Range The code is inserting data wherever selection is.
I tried MSForms.DataObject but I could only found examples with only text whereas my clipboard content is more than just text. (Formatted text with images)
is there any other way I can get the job done?
The Range object also has the Paste, PasteFormat and similar methods. It's possible that you might first need to collapse the range so that it's inside the cell (rather than containing the cell). For example:
Set rng = Tbl.Cell(i, 5).Range
rng.Collapse wdCollapseStart
rng.PasteAndFormat wdPasteDefault
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.