如何从 Excel 获取输入并使用该值在 as400 中运行宏

2024-03-19

今天我正在研究as400宏,我需要对3000+条记录一一运行相同的宏。 Excel 工作表在 A 列中以数字格式包含 3000 多行。每次我需要运行宏时,在此之前我需要使用 Excel A 列中的值更改 AS400 宏代码。

下面是 AS400 宏的代码。

[PCOMM SCRIPT HEADER]
LANGUAGE=VBSCRIPT
DESCRIPTION=
[PCOMM SCRIPT SOURCE]
OPTION EXPLICIT
autECLSession.SetConnectionByName(ThisSessionName)

REM This line calls the macro subroutine
subSub1_

sub subSub1_()
   autECLSession.autECLOIA.WaitForAppAvailable

   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "dc74945"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "[enter]"

   autECLSession.autECLPS.WaitForAttrib 5,28,"00","3c",3,10000

   autECLSession.autECLPS.WaitForCursor 5,29,10000

   autECLSession.autECLOIA.WaitForAppAvailable

   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "[tab]"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "7"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "[enter]"

   autECLSession.autECLPS.WaitForAttrib 5,24,"00","3c",3,10000

   autECLSession.autECLPS.WaitForCursor 5,25,10000

   autECLSession.autECLOIA.WaitForAppAvailable

   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "n"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "[tab]"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "[tab]"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "[tab]"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "[tab]"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "[tab]"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "nnn"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "[tab]"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "n"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "[enter]"
end sub

现在每次我都需要通过从 Excel 获取输入来更改以下行。

autECLSession.autECLPS.SendKeys "dc74945"

Excel 包含以下格式的数据:

ID  Name
AC71182 Andrew Cain
AC74398 Adam Cadman
AD39903 Alisha Davies (CARDIFF)
AC74952 Abby Clarke
AD54561 Alison Duffield
AD59529 Ann Rose Davies
AD60488 Alex Delmonte C'Diff COMBO

我正在寻找的是一个 AS400 宏,用于从 Excel 中的 A 列(包含 ID)中逐个读取单元格,然后通过更改上述行中的值来运行该 ID 的上述宏。

我进行了很多搜索,但从未找到使用 AS400 宏来实现此目的的简单方法。 我有 VBA 宏来做这些事情,但我需要 AS400 宏。因此,如果可以的话,请求您的帮助。

谢谢, 弥勒佛


您在 IBM 个人通信中运行的这些 AS400 宏只是 Visual Basic 脚本,您可以在代码中实例化其他 ActiveX 对象,例如Excel.应用程序。

这是此类宏的一个简短示例。它会打开一个 Excel 工作表并循环遍历每一行,直到工作表的 A 列中没有值为止:

[PCOMM SCRIPT HEADER]
LANGUAGE=VBSCRIPT
[PCOMM SCRIPT SOURCE]
autECLSession.SetConnectionByName(ThisSessionName)
Dim excel
Dim row
Dim inputFilename 
Dim objWorkbook

inputFilename = "C:\...\YourExcelFile.xls"

Set excel = CreateObject("Excel.Application")
Set objWorkbook = excel.Workbooks.Open(inputFilename)
excel.visible = true 'If you want to

row = 2 'Start at row 2 of your excel sheet

'Loop until AS400 has blocked input (error in most cases) or there are no values in column A of excel sheet left
while autECLSession.autECLOIA.InputInhibited = 0 AND excel.Cells(row,1).Value <> "" 

   '### YOUR MACRO STARTS HERE
   autECLSession.autECLOIA.WaitForAppAvailable

   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys excel.Cells(row,1).Value 'Value of column A / current row from excel sheet
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SendKeys "[enter]"

   autECLSession.autECLPS.WaitForAttrib 5,28,"00","3c",3,10000

   autECLSession.autECLPS.WaitForCursor 5,29,10000

   ' ...

   '### YOUR MACRO ENDS HERE

   row = row + 1
wend

excel.Quit
Set excel = Nothing

此致

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Excel 获取输入并使用该值在 as400 中运行宏 的相关文章

  • Excel 在“.xls”中发现不可读的内容。同时导出水晶报表到excel

    我正在将数据从 Crystal 报告导出到 PDF 工作正常 并显示所有记录 但是当我将其导出到 Excel 文件中并成功导出时 以及当我在 Excel 中打开它时给出错误消息 文件错误 数据可能已丢失 当我点击 确定 按钮时 在 Exce
  • 由于直接引用范围而不是通过中间变量而导致 Excel VBA 运行时错误 450

    当我尝试直接引用某个范围内的值时 出现运行时错误 450 但如果我使用中间变量 它就会起作用 我不明白为什么 所以我担心在将来的某个时候我会再次遇到错误而不知道为什么 我尝试过使用 With End With 块 但当我直接引用范围时它仍然
  • 如何在未安装 Office 的情况下以编程方式创建、读取、写入 Excel?

    我对所有读取 写入 创建 Excel 文件的方法感到非常困惑 VSTO OLEDB 等 但它们都seem具有必须安装office的要求 这是我的情况 我需要开发一个应用程序 它将以 Excel 文件作为输入 进行一些计算并创建一个新的 Ex
  • 在 VBA 中循环合并单元格

    是否可以循环遍历合并的单元格vba questions tagged vba 我的范围内有 6 个合并单元格B4 B40 我只需要这 6 个单元格中的值 6 次迭代 上面的答案看起来已经让你排序了 如果您不知道合并的单元格在哪里 那么您可以
  • laravel中过滤后如何导出excel?

    我想仅导出视图刀片中过滤的数据 我正在使用 Laravel 7 和 maatwebsite excel 3 1 和 PHP 7 4 2 我浏览了文档并应用了这个 View a href class btn btn success i cla
  • 使用 Apache POI Excel 写入特定单元格位置

    如果我有一个未排序的参数 x y z 列表 是否有一种简单的方法将它们写入使用 POI 创建的 Excel 文档中的特定单元格 就好像前两个参数是 X 和Y 坐标 例如 我有如下行 10 4 100 是否可以在第 10 行第 4 列的单元格
  • 定义 js-xlsx 单元格范围

    我正在尝试使用 js xlsx 读取 Excel 值 我可以使用以下代码从工作簿工作表中获取单元格值 if typeof require undefined XLSX require xlsx var workbook XLSX readF
  • 将匹配的行复制到另一张纸中

    我有两张表 sheet1 和sheet 2 我正在查看工作表 1 的 T 列 如果工作表 2 中 T 包含 1 则粘贴完整行 该代码运行良好 但它将sheet2 中的结果粘贴到sheet1 的同一行中 这会导致行之间出现空白 任何人都可以建
  • 在 Node.js 中解析 Json(带有数组和对象)并将数据导出到 Excel 文件中

    我是 Node js 新手 我的要求是 我需要解析 JSON 并将数据导出到 Excel 文件中 其中包含 JSON 中的所有字段 我的 JSON 如下 id 1255 title The Brain and Nervous System
  • 如何将 MySQL 查询输出保存到 Excel 或 .txt 文件? [复制]

    这个问题在这里已经有答案了 如何将 MySQL 查询的输出保存到 MS Excel 工作表 即使只能将数据存储在 txt文件 就可以了 From 将 MySQL 查询结果保存到文本或 CSV 文件中 http www tech recipe
  • 在二维范围内查找匹配的公式

    我需要一个公式来查找二维范围内的值并返回匹配单元格的坐标或单元格地址 例如 R A B C 1 John Matt Pete 2 Sara Bret Chad 3 Lila Maya Cami 我想搜索范围A1 C3 for Chad并返回
  • Excel工作簿关闭后反复打开

    我使用了 Application ontime 方法来调度一些宏 关闭工作簿后 它会一次又一次地打开 为了解决这个问题 我在工作簿上设置了另一个事件 BeforeClosed 现在它显示运行时错误 1004 Object Applicati
  • 将 Excel 范围转换为 VBA 字符串

    我想将给定范围内的值转换为 VBA 字符串 其中原始单元格值由任何选定的列分隔符和行分隔符分隔 分隔符可以是一个字符或更长的字符串 行分隔符是行末尾的字符串 该字符串应该像我们从左上角 从左到右 到右下角读取文本一样完成 以下是范围 A1
  • Excel 工作表名称的有效字符

    在 Java 中 我们使用以下包以编程方式创建 Excel 文档 org apache poi hssf 如果您尝试设置工作表的名称 不是文件 而是内部 Excel 工作表 在以下情况下您将收到错误消息 名称超过 31 个字符 该名称包含以
  • Excel 2013 数据透视表不会更改当前页面,除非手动导航到

    我们有一小段 VBA 代码 多年来一直完美运行 本质上是 Me PivotTables APivot PivotFields AField CurrentPage Some text 这种方法一直有效 直到 Excel 2013 该行将失败
  • 通过 Excel / VBA 调用 DLL 中的 C++ 函数在传递双参数时生成异常

    我试图通过 DLL 在 Excel VBA 中使用 C C 静态函数 我在 VS17 中调试时遇到异常 我怀疑这是参数传递方式的问题 它是双精度 EXCEL EXE 中 0x00007FFA28BBA14F kernel32 dll 处抛出
  • VBA 架构技巧 - 宏封装

    我拼凑了 Excel 的概念证明 以从数据库获取数据 并需要将其打包 以便可以将其分发给我们的客户 我的第一次尝试只是将所有代码放入代码模块中 但随后在 Excel 中我可以看到宏列表中的所有模块 而我实际上只想要列表中的主要模块 我猜想我
  • 替换字符串变量中的多个字符 (VBA)

    如何替换字符串变量中的多个内容 这是我在 VBA 中的示例函数 Private Function ExampleFunc ByVal unitNr As String If InStr unitNr OE gt 0 Then unitNr
  • 在 powershell 中打开 Excel 时出错

    我需要用以下命令打开 Excel 文件CorruptLoad来自 powershell 脚本的参数 但是当我尝试做到这一点时 出现错误Exception calling Open with 15 argument s open method
  • 实例化 Microsoft.Office.Interop.Excel.Application 对象时出现错误:800700c1

    实例化 Microsoft Office Interop Excel Application 以从 winforms 应用程序生成 Excel 时 出现以下错误 这之前是有效的 但突然间它停止工作了 尽管代码和 Excel 版本没有变化 我

随机推荐

  • ActiveRecord 搜索返回“语法错误或访问冲突”错误

    在我的 Yii 应用程序中 我有一个模型代表siteconfig表并有四列 integer config id string key string value string update time 我使用Gii创建了一个模型 以确保我不会犯
  • 如何*快速*将许多 .txt 文件转换为 .xls 文件

    更新 我刚刚发现拥有更强大服务器的人将完成分配给我的任务 所以我没有让这个程序足够快也没关系 然而 下面的答案 自动化 Excel 有助于使程序速度提高三倍 因此我将其推荐给文件较少 但仍然较多 的人 我正在尝试将许多 超过 300 000
  • Java泛型通配符及其局限性

    我有一个由两部分组成的问题 我的书指出 如果指定通配符时没有大写字母 绑定 那么只能调用 Object 类型的方法 通配符类型的值 我不知道这意味着什么 这是什么意思 另外 通配符类型 无界和有界 有哪些限制 例如 如果我有一个参考MyCl
  • 来自相机的原始图像数据

    我一直在这个论坛上上下搜索 但找不到我真正需要的东西 我想从相机获取原始图像数据 到目前为止 我尝试通过该方法从 imageDataSampleBuffer 中获取数据captureStillImageAsynchronouslyFromC
  • 如何组合多个 TypeScript 类装饰器?

    我有一个类装饰器家族 我在很多类中重复使用它们 与此类似的东西 foo bar baz export class MyClass 由于我在多个类中使用这三个装饰器 我真的很想将其分解为一个装饰器 如下所示 standard export c
  • 如何获取 C# 中所有已加载类型的列表?

    我需要检索从给定的程序集加载的所有枚举 List
  • 导入错误? (Python 3.2)

    我有自己的名为 v systems 的模块 并且我正在尝试将该模块导入到另一个 python 文件中 该文件也保存在与保存文件 v systems 相同的目录中 我需要将其导入为import v systems as vs或者即使我尝试导入
  • 以概率打乱 JS 数组

    假设我有一个像这样的数组 const alphabet a b c d 这代表 4 名政治候选人和一次等级选择投票 其中候选人a是首选 b是第二选择等等 我想将其打乱为一堆随机顺序 但在这种情况下我想要a大概以 60 的比例最先出现 b第二
  • Android Studio - 没有可调试的应用程序

    我尝试调试 Android 应用程序的发布版本 但 Android Studio 无法附加调试器 它找不到我正在运行的应用程序的 Android 进程 在设备控制台下 只有一条消息 没有可调试的应用程序 您还应该激活 工具 gt Andro
  • CMake 中的第三方库

    我在我的项目中使用 cmake 但我在子目录 例如 lib 中有另一个库 它使用普通的 Makefile 作为构建过程的一部分 如何指示 CMake 运行 lib 中的 Makefile 解决方案是使用 execute process CO
  • 安装后将 Javacard 小程序标记为隐式可选(默认小程序)

    我正在寻找一种方法 将小程序标记为隐式可选 默认选择 小程序 然后将其上传并安装在全球平台 http www globalplatform org JCOP 2 4 2 R1 http www nxp com products identi
  • 使用 JAVA 在 S3 存储桶上放置/读取文件

    我试图将文件放在 S3 上并使用 JAVA 从 S3 存储桶读取文件 但遇到无法执行 HTTP 请求 当我尝试列出存储桶时 它工作正常 对我来说 似乎只有 listBuckets 方法在工作 而所有其他方法 如 putObject list
  • Spring Reactive xml有效负载异常java.lang.IllegalStateException:无法解析类型为“reactor.core.publisher.Mono”的参数0

    我有一个春季启动应用程序 尝试通过邮递员将 xml 有效负载发送到 Post 请求 我得到以下内容例外 java lang IllegalStateException Failed to resolve argument 0 of type
  • Marathon 上的临时任务

    在此之前 我要说的是 我是 Mesosphere 堆栈的新手 我正在尝试将现有的 Rails 应用程序部署迁移到 Mesos 到目前为止我已经成功 但目前我正在运行迁移和种子 通过 Rake 任务 我没有看到一个很好的方法来实现它因为这些任
  • Linux 操作系统:/proc/[pid]/smaps 与 /proc/[pid]/statm

    我想计算单个进程的内存使用情况 经过一些研究后 我发现了 smaps 和 statm 首先什么是smaps和statm 有什么不同 statm 有一个 RSS 字段 在 smaps 中我总结了所有 RSS 值 但对于同一过程 这些值是不同的
  • 如何在 Vim 上将 inoremap/nnoremap 设置为“命令键”?

    我想将操作分配给 Vim 中的命令键 难道就没有什么方法吗 假设你使用的是 Mac 你无法在 vim 中映射命令键当它在终端模拟器中运行时 仅在 MacVim 中GUI 如果您使用 MacVim GUI 您的映射应该使用
  • Memcache获取密钥过期时间

    使用 memcached 和 php memcached 库 有没有办法在执行操作时获取当前密钥到期时间get http www php net manual en memcache get php 使用这个例子 它显示所有服务器密钥及其过
  • 需要在 python 测试用例中模拟一些基类行为

    我的标题相当具有描述性 但就这样吧 假设我有这个设置 class BaseClass object def init self pass def base function self param Hello World print para
  • Angular 控制台仅从 main.js:1 和 polyfills.js:1 记录日志

    我正在构建一个新的角度应用程序 在我执行 console log 的任何地方 它都来自 main js 1 或 polyfills js 1 而不是来自正确的组件 我尝试将 main js 和 polyfills js 添加到开发工具设置中
  • 如何从 Excel 获取输入并使用该值在 as400 中运行宏

    今天我正在研究as400宏 我需要对3000 条记录一一运行相同的宏 Excel 工作表在 A 列中以数字格式包含 3000 多行 每次我需要运行宏时 在此之前我需要使用 Excel A 列中的值更改 AS400 宏代码 下面是 AS400