Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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 如何从word VBA中选择/激活工作表?_Excel_Vba_Ms Word_Multiple Monitors - Fatal编程技术网

Excel 如何从word VBA中选择/激活工作表?

Excel 如何从word VBA中选择/激活工作表?,excel,vba,ms-word,multiple-monitors,Excel,Vba,Ms Word,Multiple Monitors,我使用两个屏幕显示器。左侧监视器打开了一个Excel工作簿。右监视器已打开Microsoft Word文档。我使用Word用户表单将数据从打开的工作簿带到打开的Word文档 但有时我需要更改激活/选定的工作表(我的意思是,在其他工作表前面的工作表;我可以看到的工作表),我希望通过Microsoft Word用户窗体中的按钮来更改 下面的代码不起作用,我不知道如何实现这个目标 拜托,有人能想出一个办法吗 Sub ACTIVATE_WORKSHEET_ASDF() Dim MyExcel As E

我使用两个屏幕显示器。左侧监视器打开了一个Excel工作簿。右监视器已打开Microsoft Word文档。我使用Word用户表单将数据从打开的工作簿带到打开的Word文档

但有时我需要更改激活/选定的工作表(我的意思是,在其他工作表前面的工作表;我可以看到的工作表),我希望通过Microsoft Word用户窗体中的按钮来更改

下面的代码不起作用,我不知道如何实现这个目标

拜托,有人能想出一个办法吗

Sub ACTIVATE_WORKSHEET_ASDF()

Dim MyExcel As Excel.Application
Dim MyWB As Excel.Workbook
Set MyExcel = New Excel.Application
Set MyWB = MyExcel.Workbooks.Open("MY EXCEL WORKBOOK FULL PATH")
Dim ASDF As Worksheet
Set ASDF = MyWB.Sheets("ASDF")

ASDF.Select 'DO NOT WORK
ASDF.Activate 'DO NOT WORK
Debug.Print ASDF.Cells(1,1) 'DOES WORK!

MyWB.Close False
Set MyExcel = Nothing
Set MyWB = Nothing

End Sub

您正在创建一个新的Excel实例。它可以工作,但仍然不可见。然后关闭它。如果要连接到现有实例,请使用。谢谢帮助!我很高兴知道这是可能的!但由于它并不像我预期的那样简单,现在我将坚持使用从word Userform执行的非常简单的AutoIt宏,它模拟鼠标移动和鼠标单击。再次感谢你@strajano-
GetObject
非常直观,比鼠标移动和点击要好得多。谢谢BigBen!你的话鼓励我去尝试。当我在代码中看到32位API引用时,我记得我的Excel是64位的,然后我感到有点害怕。但在一周左右的时间里,我将有更多的空闲时间做我的研究,并将我的宏修改为GetObject范例!!AutoIt解决方案将只是临时解决方案。祝你有美好的一天!!您正在创建一个新的Excel实例。它可以工作,但仍然不可见。然后关闭它。如果要连接到现有实例,请使用。谢谢帮助!我很高兴知道这是可能的!但由于它并不像我预期的那样简单,现在我将坚持使用从word Userform执行的非常简单的AutoIt宏,它模拟鼠标移动和鼠标单击。再次感谢你@strajano-
GetObject
非常直观,比鼠标移动和点击要好得多。谢谢BigBen!你的话鼓励我去尝试。当我在代码中看到32位API引用时,我记得我的Excel是64位的,然后我感到有点害怕。但在一周左右的时间里,我将有更多的空闲时间做我的研究,并将我的宏修改为GetObject范例!!AutoIt解决方案将只是临时解决方案。祝你有美好的一天!!