EXCEL技术VBA一键获取SAP系统数据

1.第一步 在SAP系统建立一个可远程调用的函数RFC 在这里插入图片描述

2.第二步 就是在EXCEL里面的操作了 找到开发工具 点击Visual Basic (切记EXCEL要启用宏 在信任中心里面)
在这里插入图片描述
3.第三步 在EXCEL里面写代码 格式差不多大同小异

Sub 点击刷新()
'设置登录信息
Set R3 = CreateObject("SAP.Functions")
R3.Connection.System = "DEV"
R3.Connection.ApplicationServer = "172.16.1.24"
R3.Connection.Client = "330"
R3.Connection.SystemNumber = "10"
R3.Connection.User = "XIAOT"
R3.Connection.Password = "xiao435435"
R3.Connection.Language = "ZH"
'有中文汉字或中文字符的话,需要设置代码页,否则可能出现乱码
R3.Connection.Codepage = "8400"
If R3.Connection.logon(0, False) <> True Then
Exit Sub
Else
'调用RFC,处理输入、表、输出等参数
'添加RFC名称
Set MyFunc = R3.Add("ZFMPP_PENDING")
'设置输入参数
Set oParam1 = MyFunc.exports("WERKS")
'oParam1.Value = "1001"
'执行远程调用
Result = MyFunc.CALL
If Result = True Then
'设置table参数
Set pending = MyFunc.Tables("IT_RETURN")
'设置返回参数
Set oParam2 = MyFunc.exports("IT_RETURN")
Else
MsgBox MyFunc.EXCEPTION
R3.Connection.LOGOFF
Exit Sub
End If
'注销登录
R3.Connection.LOGOFF
'固定列名称
Cells(2, 3) = "工厂"
。。。。
'使用循环处理table参数
For i = 3 To pending.RowCount
Set Row = pending.Rows(i)
Cells(i, 3) = Row.Value("WERKS")
。。。。
Next
End If
End Sub
 

这里注意一下 :本人在研究过程中,发现64位EXCEL与SAP系统不兼容。还未找到解决方案,望能得到有志之士的帮助!
————————————————
版权声明:本文为CSDN博主「Qunending」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Qunending/article/details/104480990

  • 6
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
Excel VBA中实现批量提取Word表格内容可以通过以下步骤进行: 1.首先,在Excel的工作簿中打开Visual Basic Editor(VBE)。 2.在VBE的工具栏上,选择“插入”→“模块”,在模块中编写VBA代码。 3.在编写代码之前,确保已经添加对Microsoft Word对象库的引用。可以通过在VBE中选择“工具”→“引用”来添加引用。 4.在VBA代码的模块中,使用Word对象变量来打开Word文档。例如,可以使用以下代码打开一个名为"Document1.docx"的Word文档: ``` Dim wdApp As Word.Application Dim wdDoc As Word.Document Set wdApp = New Word.Application Set wdDoc = wdApp.Documents.Open("C:\路径\Document1.docx") wdApp.Visible = True ``` 5.接下来,使用“With”语句和对象变量来引用Word文档中的表格,然后遍历表格中的每个单元格,并将其值复制到Excel工作表中。 ``` With wdDoc For Each tbl In .Tables For Each cell In tbl.Range.Cells '将单元格值复制到Excel工作表中的指定位置 Worksheets("Sheet1").Cells(rowNum, colNum).Value = cell.Range.Text '更新行号和列号 rowNum = rowNum + 1 colNum = colNum + 1 Next cell Next tbl End With ``` 6.在代码结束时,记得关闭Word文档和应用程序对象。 ``` wdDoc.Close wdApp.Quit Set wdDoc = Nothing Set wdApp = Nothing ``` 以上步骤将通过Excel VBA实现一键批量提取Word表格内容。可以根据具体需求进行适当的修改和调整,如指定目标表格的位置、添加错误处理等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值