逐行将数据写入Excel
我目前正在运行一个脚本,该脚本逐行循环通过Excel电子表格,从Excel读取数据,并在3270模拟器中更新屏幕。使用以下程序完成循环:逐行将数据写入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 =
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"