【发布时间】:2018-08-14 13:58:17
【问题描述】:
我不熟悉使用 VBA 或其他任何方式将 Excel 数据移动到外部程序。我做了一些研究,但我找不到任何真正的答案来解决我正在尝试做的事情。
在 Excel 工作表上,我有多个(从 1 到 1,000 行)从第 84 行开始的测量信息:姓氏、名字、性别、身高、体重等。我需要在Oracle 应用程序表单。
这是我创建的代码,它可以完成这项工作,但它只会处理第一行。除了测量行之外,还必须处理初始数据行。我在代码中添加了换行符,以尝试显示 Oracle 表单中每一行的布局位置。此外,每一行都以不同的数字开头。它从 10 开始,以 10 为增量增加。
一长串制表符对于访问表单中的另一组列是必需的。如果您手动执行此操作,您将使用下拉菜单,但我认为这在 VBA 中是不可能的。可能吗?还是使用 VBA 以外的其他方式来执行此操作会更好?
Sub MoveToOracle()
AppActivate "Oracle Applications - cbsProd (11.5.10.2)"
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys ("10")
SendKeys ("{TAB}")
SendKeys ("A")
SendKeys ("{TAB}")
SendKeys Range("E1")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("ENV")
SendKeys ("{DOWN}")
SendKeys ("20")
SendKeys ("{TAB}")
SendKeys ("1")
SendKeys ("{TAB}")
SendKeys ("FN{F3}")
SendKeys ("{TAB}")
SendKeys Range("A2")
SendKeys ("{TAB}")
SendKeys Range("B2")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys ("{TAB}")
SendKeys Range("C2")
SendKeys ("{TAB}")
SendKeys Range("D2")
SendKeys ("{TAB}")
SendKeys Range("E2")
SendKeys ("{TAB}")
SendKeys Range("F2")
SendKeys ("{TAB}")
SendKeys Range("G2")
End Sub
编辑:不会从 Excel 工作簿中读取读取顺序号。每个新行都需要以 10 为增量的唯一数字开头,从 10 开始。我不确定如何使用 SendKeys 循环遍历 Excel 数据。
另外,我几乎无法使用 Excel。我没有创建或管理数据库的开发权限。
【问题讨论】:
-
oracle表单后面有数据库吗?是否可以通过导出/导入将信息导入数据库,然后从其数据库中填写表格?通过 VBA 将数据“手动”写入 oracle 表单对我来说似乎有点过于复杂。
-
有,但我无法访问它。用 VBA 以外的东西做我想做的事情是否可能/更好?
-
这取决于.. 你到底想做什么?将数据写入该表单后会发生什么?
-
我在 Excel 工作表上有一个排序表。我需要这些数据以这种 Oracle 形式结束。我发布的图像是代码的结果。
-
这就是最终目标?只是表格中的数据?不是以某种形式保存的(例如 oracle db)?