vba切换工作薄
【分享成果,随喜正能量】人是好事,不能一年到头都高兴,但一个伤口,可以让你郁郁寡欢地度过一生。
痛苦对人的刺激,总是远大于快乐。
大人的烦恼,跟谁都说不合适,悲喜自递,别人很难领悟。
人最强的时候,不是努力,而是放下。
这一生,有各自的渡口,努力拼搏,所有人自己走过去。
《VBA信息获取与处理》教程( 10178984 )是我发布的第六套教程,现在已经修订了第一版。
本教程被定位为最高等级,是学习了初级、中级后的教程。
本教程涉及APP应用之间的信息获取、随机信息的使用、电子邮件的发送、VBA互联网数据的获取、VBA的延迟操作、剪贴板APP应用、展布函数、工作表信息与其他APP应用的交互
包括使用FSO对象、检索工作表和文件夹信息、检索图形信息以及自定义工作表信息函数等内容。
程序文件通过了32位和64位两种OFFICE系统测试。
很抽象,更有研究价值。
教程一共是两本,20个主题。
今天的共享内容是VBA代码如何在word和excel之间切换
部分word和excel这两个APP之间的激活操作,就像我们的报表界面一样,当我们的界面进行到下一步时,用第二个和第三个按钮激活刚才打开的excel。 这个按钮的代码怎么写?
代码解说:上述代码在开头声明引用API函数,在代码中首先寻找excel程序,找到后将excel放在顶部。
该程序激活主EXCEL程序并获得焦点。 注意:打开VBA编辑器时,此操作将无法正常工作。
打开VBA编辑器窗口时,焦点将放在该窗口上,而不是XLMAIN窗口上。
只要将myCLASS更改为APP应用程序主窗口中的类,就可以在任何APP应用程序中激活此代码。 下面是一些常见的office APP应用程序的常见类。
Excel 97、2000、2002、2003、2007和2013是XlMain
Word 97、2000、2002、2003、2007和2013是OpusApp
Access 2000、2002、2003、2007和2013为OMain
让我们看一下上面的代码的详细情况。
Const MYCLASS='XLMAIN '
获取主' excel APP应用程序窗口的窗口句柄' XLMAIN '
如果您正在运行Excel的多个实例,则无法控制检索哪个实例的HWnd。
XL hwnd=findwindow ( LP class name:=my class,lpWindowName:=vbNullString ) )。
调用' FindWindow '时,vbNullString必须使用非空字符串'' 调用API函数时,vbNullString和空字符串“”之间存在差异。
bringwindowtotop(hwnd )=XLhwnd )自顶向下APP应用
函数语法: BringWindowToTop;
函数:此函数将指定窗口设置在z顺序的顶部。
如果窗口位于顶层,则窗口处于活动状态。 如果窗口是子窗口,则相应的顶层父窗口将处于活动状态。
参数:设置在hWnd订单顶部的窗口句柄。
返回值:如果函数成功,则返回值为非零。 如果函数失败,返回值为零。
要获取更多的错误消息,请调用GetLastError函数。
窗口的使用方法
函数:此函数获取类名和窗口名与指定字符串匹配的顶级窗口的句柄。
此函数不搜索子窗口。
搜索时不区分大小写。
函数语法: HWND FindWindow;
参数: IpClassName :指针,用于标识指定了类名的空结束字符串或类名字符串的成员。
如果此参数是成员,则它必须是上次调用theGlobafAddAtom函数生成的全局成员。
此成员必须有16位,位于IpClassName的后16位,前0位。
IpWindowName :指定了窗口名称的空结束字符串。
如果此参数为空,则所有窗口都完全匹配。
返回值:如果函数成功,则返回值是具有指定类名和窗口名称的窗口句柄。 如果函数失败,返回值为空。
此函数有两个参数,第一个是要查找的窗口类,第二个是要查找的窗口的标题。
搜索时不一定两者都知道,但至少需要知道其中一个。
根据窗口的标题,像“计算器”一样比较容易获得,所以检索时需要使用标题进行检索。
但是,也有像“记事本”这样标题不固定的软件。 如果要打开的文件不同,窗口的标题也不同,则在窗口类中进行搜索非常有用。
如果找到了满足条件的窗口,这个函数返回该窗口的句柄,否则返回0。
关于句柄,句柄是整个Windows编程的基础。
一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。
应用程序能够通过句柄访问相应的对象的信息,但是句柄不是指针,程序不能利用句柄来直接阅读文件中的信息。
如果句柄不在I/O文件中,它是毫无用处的。
句柄是Windows用来标志应用程序中建立的或是使用的唯一整数,Windows大量使用了句柄来标识对象。
SetFocus HWnd:=XLHWnd
设置焦点。
本节知识点回向:在本节中我们讲了如何做到在不同的应用程序间切换,主要利用了两种方案,一种是利用API函数,要查找到程序的局部然后置顶,一种是利用了AppActivate,这两种方法在应用上要注意测试,
对于前者要注意所用的office是否合适于这种应用,后者要注意应用的稳定性。
本讲的知识点:
AppActivate 如何应用。
FindWindow 和SetFocus 如何应用。
上述两种应用的优缺点分析。
理解API函数声明与OFFICE版本的关系。
本节代码参考文件“001 在WORD中激活EXCEL.docm”
我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序:
【分享成果,随喜正能量】凡是经不起时光沉淀的生命喧嚣,都不算伤痛,更不算创伤,它就是像浮云片片,来了去了,如果你心大点,它既不是来也不是去,它就是一片风景。