2015-10-08 3 views
0

В настоящее время я пытаюсь создать сценарий для копирования данных с экрана Hummingbird HostExplorer в Excel (по существу, скремблирования экрана). Я могу создать экземпляр Excel без проблем, и я могу без проблем вставлять данные в Word, но я просто не могу работать (даже после нескольких часов поиска в Интернете), как фактически вставлять данные в Excel.Копирование данных из Hummingbird HostExplorer в 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.

Я пропустил что-то невероятно простое здесь?

ответ

0

Следующий код создает книгу Excel и вставит содержимое буфера обмена в новом листе:

option explicit 

dim XLS, Book, Sheet 

'Load Excel Application. 
Set XLS = CreateObject("Excel.Application") 

'By default it is invisible, so make it visible. 
XLS.visible = true 

'Still there is no workbook, so add one now. 
set Book=XLS.Workbooks.Add() 

'By default a workbook has 3 worksheets; we will work on the first one. 
set Sheet=Book.Sheets(1) 

'Call sheet.paste to paste the content of the clipboard into the active cell 
'(which is by default "A1"). 
Sheet.paste 
+0

Не могли бы вы добавить некоторые пояснения к вашему ответу? – honk

+0

Я представил часть, которая создает книгу excel и вставляет содержимое буфера обмена в новый рабочий лист. – milevyo

+0

Благодарим вас за разъяснения. К сожалению нет подсветки синтаксиса для VB, поэтому я переместил ваши комментарии в собственные строки, чтобы повысить удобочитаемость. Я также помещаю содержание вашего комментария на ваш ответ. Надеюсь, с моим редактированием все в порядке. – honk