【发布时间】:2015-10-08 13:13:00
【问题描述】:
我目前正在尝试创建一个脚本来将数据从 Hummingbird HostExplorer 屏幕复制到 Excel(本质上是屏幕抓取)。我可以毫无问题地创建 Excel 实例,也可以毫无问题地将数据粘贴到 Word 中,但我根本无法弄清楚(即使经过数小时的在线搜索)如何将数据实际粘贴到 Excel 中。
这是目前的代码:
Sub Main
Dim Host As Object
Dim HE as Object
Set HE = CreateObject( "HostExplorer" )
Set Host = HE.CurrentHost
Dim iPSUpdateTime
Dim HostExplorer as Object
Dim MyHost as Object
On Error goto ErrorCheck
Set HostExplorer = CreateObject("HostExplorer") ' Initialize HostExplorer Object
Set MyHost = HostExplorer.HostFromProfile("EDC") ' Set object for the desired session
iPSUpdateTime = 60 ' PS Update wait time set to 60 seconds
'-------------------------------------
' insertion of code to change to A226
'-------------------------------------
MyHost.RunCmd("Home")
MyHost.RunCmd("Back-Tab")
MyHost.Keys("a226")
MyHost.RunCmd("Enter")
MyHost.WaitPSUpdated iPSUpdateTime, TRUE
MyHost.Keys("001dis010101")
MyHost.RunCmd("Tab")
MyHost.RunCmd("Tab")
MyHost.RunCmd("Tab")
MyHost.RunCmd("Tab")
MyHost.Keys("c")
MyHost.RunCmd("Enter")
MyHost.WaitPSUpdated iPSUpdateTime, TRUE
'----------------------------
' code to copy data to Excel
'----------------------------
Dim XLS As Object
Set XLS = CreateObject("Excel.Sheet")
XLS.FileNewDefault
For i = 1 to Host.Rows
XLS.FONT "Courier New"
XLS.FontSize 8
Next i
'-------------
' Error check
'-------------
ErrorCheck:
if (Err = 440) Then
Msgbox "The specified session is not running.", 16, "Hummingbird Macro Error"
End If
Exit Sub
End Sub
当我运行它时,它会到达XLS.FileNewDefault,但随后会跳过For i 部分并直接进行错误检查。但是,如果我改变:
Set XLS = CreateObject("Excel.Sheet")
到
Set XLS = CreateObject("Word.Basic")
它可以很好地粘贴到 Word 中。
我在这里错过了一些非常简单的事情吗?
【问题讨论】:
标签: excel screen-scraping basic