Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将变量指定给由第三方软件打开的电子表格_Excel_Vba_Multiple Instances - Fatal编程技术网

Excel 将变量指定给由第三方软件打开的电子表格

Excel 将变量指定给由第三方软件打开的电子表格,excel,vba,multiple-instances,Excel,Vba,Multiple Instances,我从通过SAP打开的工作簿中提取数据时遇到问题。宏在SAP中运行并执行多项操作,然后打开所需的数据。通过打开Excel窗口打开数据。我目前正在做的是为工作簿分配一个变量。并在整个宏中使用该引用 Dim SAP_WB as workbook 'macro works within SAP and results in a workbook that pops up on the screen Set SAP_WB=ActiveWorkbook 'macro manipulates the

我从通过SAP打开的工作簿中提取数据时遇到问题。宏在SAP中运行并执行多项操作,然后打开所需的数据。通过打开Excel窗口打开数据。我目前正在做的是为工作簿分配一个变量。并在整个宏中使用该引用

Dim SAP_WB as workbook
'macro works within SAP and results in a workbook that pops up on the screen    
Set SAP_WB=ActiveWorkbook
'macro manipulates the opened workbook and gets specific data.

该工作簿已分配给第一个excel实例。如果用户拥有excel工具,并且在第一个实例上打开了宏,那么宏的效果会非常好。但如果用户打开了多个实例,则ActiveWorkbook不适用。从SAP打开的工作簿有一个我无法控制的动态名称。即使工作簿在另一个实例上,是否仍要为其分配变量?

这种情况让我感到困惑。。。如果excel打开了>1个工作簿,提示用户手动添加工作簿名称,您可以添加一个输入框?然后您可以像这样使用该变量:
Set SAP\u WB=ActiveWorkbook(MyVariable)
这是一个广泛使用的工具。并非所有人都熟悉excel实例。我真的不想让他们关闭工作簿,然后在主(第一)实例中打开它。希望通过宏处理它,避免与最终用户交互。@M.Marzouk我建议以只读方式打开WB,然后将其分配给WB对象<代码>设置SAP\u WB=Application.WorkBooks.Open(“C:\MyWB.xlsx”,ReadOnly:=True)这是不可能的。我在后台控制SAP。SAP中唯一的选项是一个按钮,可以立即在excel中打开它。没有保存文件的选项。单击按钮后,该工作簿将在屏幕上弹出打开。没有其他选择。没有人有解决方案??:(