逐行将数据写入Excel

逐行将数据写入Excel,excel,vbscript,copy-paste,3270,Excel,Vbscript,Copy Paste,3270,我目前正在运行一个脚本,该脚本逐行循环通过Excel电子表格,从Excel读取数据,并在3270模拟器中更新屏幕。使用以下程序完成循环: Sub Main subGetSession subGoToScreen "DELP", "********", "0000000001" Dim rw Dim TITLE TITLE = "Script Completion Confirmation" Set atlDirectorObject =

我目前正在运行一个脚本,该脚本逐行循环通过Excel电子表格,从Excel读取数据,并在3270模拟器中更新屏幕。使用以下程序完成循环:

Sub Main
    subGetSession
    subGoToScreen "DELP", "********", "0000000001"
    Dim rw
    Dim TITLE
        TITLE = "Script Completion Confirmation"
    Set atlDirectorObject  = CreateObject("atlDirectorObject.atlDirector")
    Set objExcel           = createobject("Excel.Application")
    Set objExcelWb         = objExcel.Workbooks.Open
                           ("S:\Scripting\0711_Settlement2.xlsx")
    Set objExcelSht        = objExcelWb.Worksheets("Test")
    Set oFileObject        = CreateObject("Scripting.FileSystemObject")
    rw = 2
    objExcel.Visible = True
    Do While objExcel.CountA(objExcelSht.Rows(rw)) > 0
        subDoWork objExcelSht.Rows(rw)
        rw = rw + 1

        If (Err.Number <> 0) Then
            On Error GoTo 0
            WScript.Echo "Script Has Been Terminated"
            WScript.Quit
        End If
        On Error GoTo 0
    Loop
    MsgBox "End of Worksheet Has Been Reached" & Chr(13) & "" & Chr(13) & "Script Completed!", vbOkOnly, TITLE
End Sub
然后在粘贴数据后,我使用
funcReadScreen
在3270中读取屏幕,并生成一个弹出窗口,显示从Excel中给定行收到的结果

Sub subErrorHandle
    If funcReadScreen(24,2,37) = "A TRANSFER IS ALREADY PENDING" Then
        subErrorHandle_TransferPending
    Else
        If funcReadScreen(24,2,27) = "INVALID NUMBER" Then
            subErrorHandle_InvalidNumber
        End If
    End If
End Sub
我想做的是使用函数
funcReadScreen
将结果写入Excel中的m列。我目前正在读取A-L列,并希望根据给定行中的数据在Excel中输入从funcReadScreen到m列的结果

也就是说,应该将该错误粘贴到该行的M列中,然后转到下一行,如果通过
funcReadScreen
给出了不同的结果/错误,则将该结果/错误粘贴到该行的M列中,并移动到下一行,直到完成。因此,如果我通过read screen函数收到错误“Invalid Number”,我想将结果写入该行的M列

我目前正在使用以下sub尝试此操作,但它不起作用:

Sub subWriteToExcel2
    Dim objExcel, objExcelWb, objExcelSht

    Set objExcel    = GetObject(, "Excel.Application")
    Set objExcelWb  = objExcel.ActiveWorkbook("0711_Settlement2.xlsx")
    Set objExcelSht = objExcel.ActiveWorkbook.Worksheets("Test")

    If funcReadScreen(24,2,27) = "*** INVALID NUMBER ***" Then
        objExcelSht.Cells(2,13).Value = "Invalid Number"
    End If
End Sub
有人能帮忙吗

编辑:似乎不起作用的是,我无法“获取”Excel对象的外观。我收到了错误

对象不支持此属性或方法:objExcel.active工作簿


但是,我需要它不仅将值粘贴到
objExcelSht.Cells(2,13).value
(或第2行,第M列)中,而且随后随循环移动并始终粘贴到第M列,根据我的
If
语句以及
funcReadScreen
识别的内容。

在处理该问题几天后,我能够解决该问题。我只是在主代码的末尾添加了下面的IF语句,效果非常好。谢谢你的帮助

If funcReadScreen(24,2,27) = "INVALID NUMBER" Then
rw.Cells(13).Value = "Invalid Number"

在您的示例中,funcReadScreen正在检查“无效数字”,然后在下一个示例中检查“***无效数字***”。那是哪一个呢?还有,但它不起作用,不会告诉任何人任何事情。对不起作用的内容和正在发生的事情进行更详细的描述。funcReadScreen正在读取屏幕的特定区域。如果号码无效,屏幕将显示“***无效号码”,因此这是将该行的“无效号码”放入M列的触发器。如果funcReadScreen在屏幕上发现“无效数字***”,我希望将“无效数字”写入excel。我已经编辑了这篇文章,以包含那些不起作用的内容。Thanky you是一个(单值)属性,而不是集合或方法,因此
objExcel.ActiveWorkbook(“0711\u Settlement2.xlsx”)
不起作用。你是说
objExcel.Workbooks(“0711\u Settlement2.xlsx”)
?我已经做了更改,现在我收到了“呼叫被被叫方拒绝”错误。对这个错误有什么见解吗?
If funcReadScreen(24,2,27) = "INVALID NUMBER" Then
rw.Cells(13).Value = "Invalid Number"