VBA代码如何切换word和excel(3)

news2024/11/23 2:11:22

【分享成果,随喜正能量】人不能因为一件好事,高兴一整年,却能因为一个创伤,郁郁终生。痛苦给人的刺激,总是远远大于快乐。成年人的烦恼,和谁说都不合适,悲喜自渡,他人难悟。人最强大的时候,不是坚持,而是放下。这一生,各有各的渡口,努力努力,众生自渡。

《VBA信息获取与处理》教程(10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪贴板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。

教程共两册,二十个专题。今日分享内容是:VBA代码如何切换word和excel(3)

a39b94d8aec73ab5bd19dabf4ccb0110.jpeg

第二节  在word和excel两个应用程序间的激活操作

如我们的报告界面,当我们的界面继续往下进行,在第二个以及第三个按钮处我们要激活刚才打开的excel,这个按钮的代码该如何写呢?


代码讲解:上述代码在头部建立了引用API函数的声明,在代码中首先会查找excel程序,如果找到会将EXCEL置顶。此程序将激活主EXCEL程序,并获得焦点,注意:如果打开VBA编辑器,此操作将无法正常工作。如果打开VBA编辑器窗口,系统将设置焦点到那个窗口,而不是XLMAIN窗口。此代码可以激活任何应用程序,只需更改myCLASS到应用程序主窗口的类,这里我给大家一些常见的OFFICE应用程序常见的类:

  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应用程序窗口的窗口句柄("XLMAIN")。如果“正在运行Excel的多个实例”,您无法控制将检索哪个实例的HWnd。

② XLHWnd = FindWindow(lpClassName:=MyCLASS, lpWindowName:=vbNullString)

在调用' FindWindow时,你必须使用vbNullString不是一个空字符串"",当调用API函数时,vbNullString和空字符串“”之间有区别。

③ BringWindowToTop(HWnd:=XLHWnd) 将应用程序置顶

函数语法: BringWindowToTop(HWND hWnd);

函数功能:该函数将指定的窗口设置到Z序的顶部。如果窗口为顶层窗口,则该窗口被激活;如果窗口为子窗口,则相应的顶级父窗口被激活。

参数:hWnd: 设置到Z序的顶部的窗口句柄。

返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,可以调用GetLastError函数。

④ FindWindow用法

函数功能:该函数获得一个顶层窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数不查找子窗口。在查找时不区分大小写。

函数语法:HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName);

参数:IpClassName :指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobafAddAtom函数产生的全局成员。该成员为16位,必须位于IpClassName的低 16位,高位必须为 0。

     IpWindowName:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为空,则为所有窗口全匹配。

返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄;如果函数失败,返回值为NULL。

这个函数有两个参数,第一个是要找的窗口的类,第二个是要找的窗口的标题。在搜索的时候不一定两者都知道,但至少要知道其中的一个。有的窗口的标题是比较容易得到的,如"计算器",所以搜索时应使用标题进行搜索。但有的软件的标题不是固定的,如"记事本",如果打开的文件不同,窗口标题也不同,这时使用窗口类搜索就比较方便。如果找到了满足条件的窗口,这个函数返回该窗口的句柄,否则返回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实践经验,全部浓缩在下面的各个教程中,教程学习顺序:

 


【分享成果,随喜正能量】凡是经不起时光沉淀的生命喧嚣,都不算伤痛,更不算创伤,它就是像浮云片片,来了去了,如果你心大点,它既不是来也不是去,它就是一片风景。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/746077.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DDOS防御,阻止DDoS攻击的15个独家技巧

DDoS攻击可以使企业完全宕机数小时以上,而宕机的后果可能很严重,各种规模的企业和政府都可能受到影响。2021年,由于系统中断一小时导致销售额大幅下降,亚马逊为此遭受了约3400万美元的直接财务损失。而随后由于Fakebook的服务中断…

Spring源码系列-第2章-后置工厂处理器和Bean生命周期

第2章-后置工厂处理器和Bean生命周期 后置工厂处理器属于后置处理器,后置处理器是Spring最核心的部分,Spring几乎所有的附加功能全由它完成。 什么是BeanPostProcessor? public interface BeanPostProcessor {/*** Apply this {code BeanPos…

桥接(Bridge)模式

目录 动机使用场景参与者优劣协作实现相关模式应用和思考 桥接模式是将抽象部分和它的实现部分分离,使他们都可以独立的变化的对象结构型模式。桥接模式通过将继承改为组合的方式来解决问题;具体来说就是抽取其中一个维度并使之成为独立的类层次。 动机…

gma 2 教程(二)数据操作:2. 功能逻辑架构和栅格数据类型简介

功能逻辑架构 gma栅格数据操作所含功能/属性的关系结构如下图所示: 栅格数据类型 gma栅格数据类型继承自GDAL,与NumPy数据关联,但又有所不同,详细关系见下表: 栅格格式支持 栅格格式信息统计 gma继承了GDAL全部的栅格…

详谈三次握手

作者:爱塔居 专栏:计算机网络 作者简介:大三学生,希望和大家一起进步 经过三次的对话,这两个火柴人才确认了双方都能够说话,都能听见。三次握手也是一样的,只要这样才能确认双方的接受与发送能力…

文件操作--按数据块读写文件

函数fread()和函数fwrite()用于一次读取一组数据,即按数据块读写文件。fread()的函数原型为: unsigned int fread(void *buffer ,unsigned int size,unsigned int count ,FILE *fp);…

raid5故障导致LeftHand存储崩溃的服务器数据恢复案例

HP-LeftHand存储简介: HP LeftHand存储支持RAID5、RAID6、RAID10磁盘阵列,支持卷快照,卷动态扩容等。 服务端: 客户端: LeftHand存储分为三个层级:物理磁盘、逻辑磁盘、逻辑卷。多个物理磁盘组成一个逻辑的…

pdf文档加水印怎么弄?用这款软件很方便

在工作中,我们经常需要将PDF文件发送给他人,但无法保证文件内容不被窃取,因此需要添加水印来保证文件的安全性。如果你不知道如何给PDF文件添加水印,以下两款软件可以帮助你轻松实现,一起来看看吧! 方法一&…

火爆全网,自动化测试-Allure完美测试报告(详全)卷起来...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、allure简介 A…

网络协议与攻击模拟-17-DNS协议-报文格式

二、DNS 查询 客户机想要访问www.baidu.com,根据自己的 TCP / IP 参数,向自己的首选 DNS 服务器发送 DNS 请求 首选 DNS 收到客户机的请求后,会去查询自己的区域文件,找不到www.baidu.com的 IP 地址信息(将请求转发到…

天池大赛中药说明书实体识别挑战冠军方案开源(二)部署运行实战 附详细操作说明

目录 Introduction 导言环境搭建环境 Github地址项目目录说明使用步骤下载预训练模型更改部分代码模型训练参数设置BERT-CRF模型训练BERT-SPAN模型训练BERT-MRC模型训练 运行训练预测复赛 test 文件 (上述模型训练完成后) 参考资料其它资料下载 Introduc…

Rdkit|化学指纹(fingerprint)

github:地址 文章目录 Rdkit|化学指纹(fingerprint)化学指纹(fingerprint)RDKFingerprintMorgan指纹提供的指纹信息存储在字典中 MACCS指纹AtomPair指纹TopologicalTorsion指纹参考 Rdkit|化学指纹(fingerprint&#x…

使用楔形步进体模进行X射线骨密度测定

来源:投稿 作者:洪棋 编辑:学姐 骨密度(BMD)被广泛应用于骨折风险的预测和骨质疏松症的常规识别。双能x线骨密度仪(DXA)在临床上广泛用于测量脊柱、髋关节和前臂的骨密度(aBMD)。放射学骨密度测定法(Radiographic absorpometry, RA)是最早的骨…

最全Linux Shell详细教程

一、环境准备 我们在这里就在本地测试学习,因此我在这里先不建议大家这么着急去买服务器来学,这样比较费钱,等我们学好这些基础之后,再去上手服务器,那将是手到擒来。 本地学习工具:虚拟机 如果你没有该工…

ES6~ES13新特性(一)

1 ECMA新描述概念 2 let、const的使用 3 let、const和var区别 4 块级作用域的使用 5 模板字符串的详解 6 ES6函数的增强用法 一个执行上下文关联两个环境。词法环境和变量环境。 词法环境是由let和const创建;变量环境是由var创建的。 let-const的基本使用、不能…

网络安全现状,一个黑客真实的收入

前言 上次带大家了解了什么是黑客,黑客是干嘛的,今天就来看看黑客的收入和方向怎么样。 一个黑客年薪是多少呢? 外界普遍认为黑客是高收入群体,那么你想过黑客是怎么赚钱的吗?黑客分为白帽黑客和黑帽黑客&#xff0…

R语言实现SMOTE与SMOGN算法解决不平衡数据的回归问题

本文介绍基于R语言中的UBL包,读取.csv格式的Excel表格文件,实现SMOTE算法与SMOGN算法,对机器学习、深度学习回归中,训练数据集不平衡的情况加以解决的具体方法。 在之前的文章Python实现SMOGN算法解决不平衡数据的回归问题&#x…

源码安装 gcc遇到的问题

1、需要的工具和库的安装1 见https://gcc.gnu.org/install/preprequisites.hml 2、源码下载和依赖的工具的源码的下载 在https://gcc.gnu.org/mirrors.html中选择一个镜像源的链接打开,下边以日本的源(http://ftp.tsukuba.wide.ad.jp/software/gcc/)为例。 2.1 …

MySQL数据库的备份与还原、视图基础操作

一、备份与还原 1、使用mysqldump命令备份数据库中的所有表 mysqldump -uroot -p#$%#*#^* booksDB authorbook authors books > /backup/db/booksDB.spl 2、备份booksDB数据库中的books表 mysqldump -uroot -p*&*&……%¥#¥% booksDB books …

FreeRTOS(任务调度)

任务调度 什么是任务调度? 调度器就是使用相关的调度算法来决定当前需要执行的哪个任务。 FreeRTOS中开启任务调度的函数是 vTaskStartScheduler() ,但在 CubeMX 中被封装为 osKernelStart() 。 FreeRTOS的任务调度规则是怎样的? FreeRTOS…