vba upgrade

'本程序的版本号从1开始,逐次加大
'发布新版本后,除了将新版本放到下载目录中外,还要删除原文件或改名,程序在升级时找不到原旧文件名,才会向上推新的带版本号的文件名进行下载

Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Declare Function DeleteUrlCacheEntry Lib "wininet" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long

Function CheckUrl(Url As String) As Boolean '检测网络文件是否存在
Dim XMLObject As Object
Set XMLObject = CreateObject("Microsoft.XMLHTTP")
XMLObject.Open "GET", Url, False
XMLObject.send ""
If XMLObject.Status = 200 Then
CheckUrl = True
Else
CheckUrl = False
End If
Set XMLObject = Nothing
End Function

Sub MyUpgrade() '下载升级EXCEL的主程序
Dim PathStr As String, NewFileUrl As String, DownOk As Long, Vers%, i%, UrlPath$, FileName$, NewVers%
Vers = Val(ThisWorkbook.BuiltinDocumentProperties("Category").Value) '获取现有版本号,这个版本号写在文件的属性里,以免影响文件结构
UrlPath = "http://222.209.208.142:81/UpFiles/" '这是程序升级网址的URL路径,可根据您的路径修改
FileName = "我的程序名.xls" '这是原文件名,可根据您的程序名修改,用户改文件名,对此升级无影响
NewFileUrl = UrlPath & Vers & FileName '当前版本的完整地址
PathStr = ThisWorkbook.FullName

If CheckUrl(NewFileUrl) = False Then '如果没有在升级网址找到当前版本,那么说明有新版本
For i = Vers To Vers + 50 '继续查找新版本号,为了节省时间,所以只从当前版本号开始向上推50个版本号,如果超过50个版本都没升过级,那你也不是经常用
NewFileUrl = UrlPath & i & FileName
If CheckUrl(NewFileUrl) = True Then
NewVers = i
Exit For '如果找到新的程序文件了就退出查找
End If
Next
If NewVers > Vers Then '此条件说明找到有新版本
If MsgBox("检测到有新版本,是否立即升级?", vbYesNo + vbInformation, "升级") = vbNo Then Exit Sub
ThisWorkbook.ChangeFileAccess xlReadOnly '设为只读后才可对原旧文件进行操作
'Kill PathStr'最好不要删除文件,升级成功后让用户自己手动删除,这里采用改名法,不然会重名错误
Name PathStr As ThisWorkbook.Path & "\" & Replace(ThisWorkbook.Name, ".xls", "") & "(原文件).xls"
DownOk = URLDownloadToFile(0, NewFileUrl, PathStr, 0, 0) '下载的文件以原旧文件命名
Call DeleteUrlCacheEntry(NewFileUrl) '用这个删除缓存中下载的新程序文件,可以不要
MsgBox "升级成功"
ThisWorkbook.Close False '关闭文件,当然您可以不关而进行下面转移数据的工作
'这里加入复制旧文件的数据到新文件中的代码,如果EXCEL程序与其数据是分开存放的,则更好
End If
End If
End Sub

Sub Issue() '发布新版本,程序发布者专用,将生成的新文件放到下载目录里,必须删除旧文件
With ThisWorkbook
.BuiltinDocumentProperties("Category").Value = Val(.BuiltinDocumentProperties("Category").Value) + 1 & "为当前版本号"
.Save
.ChangeFileAccess xlReadOnly
Name ThisWorkbook.FullName As ThisWorkbook.Path & "\" & Val(ThisWorkbook.BuiltinDocumentProperties("Category").Value) & "我的程序名.xls"
MsgBox "发布成功"
.Close False
End With
End Sub

[size=xx-small]转自Jack.zhou.xmzdy@qq.com[/size]
SeleniumBasic:为VB6/VBA注入现代浏览器自动化能力 浏览器自动化是现代软件测试和数据采集的核心技术,其原理是通过WebDriver协议与浏览器内核通信,模拟用户操作。这项技术的价值在于能够高效、准确地完成重复性Web交互任务,广泛应用于Web应用测试、数据抓取和RPA流程自动化等场景。Selenium作为该领域的工业标准,通常与Python、Java等现代语言结合。然而,对于大量遗留的VB6和VBA(如Excel、Access宏)项目而言,迁移成本高昂。SeleniumBasic通过精妙的COM接口封装,将完整的Selenium WebDriver能力原生引 阅读详情

相关推荐

OpenClaw:Windows本地办公自动化智能框架

办公自动化是指利用软件工具替代重复性人工操作,提升文档处理、数据转换与跨应用协同效率。其核心原理依赖于本地进程调度、结构化脚本执行与系统级API调用,技术价值在于保障数据不出设备、规避网络延迟与满足企业安全合规要求。典型应用场景包括PDF中文解析、Office批量格式标准化、Excel VBA安全封装、多语言PDF生成及本地开发工具链桥接。OpenClaw作为专为Windows设计的本地化智能技能执行框架,通过YAML+Python技能定义、零信任架构与离线OCR支持,实现了真正免云端、低延迟、高可控的自动

ithome 385

Excel文件自毁VBA指令

新建一个Excel工作簿,按Ctrl+F11打开Excel VBE代码编辑窗口,把以下代码指令放到ThisWorkbook,只要一运行就会毁掉当前工作簿,需要做好备份。Sub kills() Application.DisplayAlerts = False With ThisWorkbook '定位到ThisWorkbook .Saved = True '关闭保存时 .Change

gtxing的博客 9415

OpenCLAW本地化部署指南:让非技术人员5分钟用上72B大模型

大模型调度中枢(Model Orchestration Hub)是近年来AI工程化落地的关键技术概念,其核心在于解耦模型能力与业务系统,实现低侵入式AI集成。OpenCLAW作为2026年主流的可嵌入式调度框架,依托DirectML与CUDA原生加速,在Windows环境实现零Docker、免WSL2的稳定推理;它不依赖云端API,支持RAG知识库对接、Excel宏调用和WebUI可视化操作,显著降低金融、政务、科研等高合规场景的AI应用门槛。本文聚焦‘非工程人员可用’这一关键价值,详解v0.8.2版本在R

weixin_34392435的博客 459

如何让Excel表使用一次后即自我销毁?

文件要打开看过后就自动删除,如何通过VBA程序来实现呢? 解决方案:将文件的ChangeFileAccess属性设置为只读,即xlReadOnly,然后通过Kill代码删除文件即可。不过为了确保用户可以正常地查看文件一次,需要将代码写入工作簿时间“Workbook_BeforeClose”中。 具体方法如下: 第一步:新建一个工作簿(也可以打开已经存在的工作簿),按Alt+F11组合键打开VBE窗...

weixin_43400125的博客 7758

Python自动化生成PPT报告:从Excel到专业幻灯片的工程化实践

PPT自动化生成是办公效率提升的关键技术,其本质是将演示文稿视为可编程文档对象,通过数据驱动实现内容动态渲染。核心原理在于解耦数据层、逻辑层与表现层,依托python-pptx构建模板化结构,结合openpyxl精准解析Excel、matplotlib生成高保真图表,确保跨平台稳定性和像素级样式控制。该方案规避了VBA宏安全限制与Power Automate调试困难等常见痛点,具备强容错性(如脏数据自动清洗、日期格式智能识别)和业务适应性(如区域数量变化自动分页、中文字体嵌入防乱码),广泛适用于金融周报、医

atu99602的博客 496

3种主流Linux发行版安装MySQL客户端:Ubuntu/Debian vs CentOS/RHEL vs Arch

本文详细介绍了在三种主流Linux发行版(Ubuntu/Debian、CentOS/RHEL和Arch Linux)上安装MySQL客户端的方法,包括基础安装、验证步骤和常见问题解决方案。针对不同发行版提供了具体的命令和配置建议,帮助用户快速部署和使用MySQL客户端进行数据库管理。

weixin_34314962的博客 474

VBA 关于 Workbook_BeforeSave

'1  Change Cells(1,1) BeforeSave Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)           T = Format(Now, "yyyy-mm-dd hh:mm:ss AM/PM")      Sheet1.Activate      Cells(1...

qq_40001383的博客 1466

ONLYOFFICE私有化部署实战:从架构解析到Nextcloud集成

在线文档协作与实时协同编辑是提升团队效率的核心技术。其原理通常基于操作转换(OT)等算法,确保多用户并发操作的一致性,技术价值在于打破地域限制、实现信息实时同步。这一能力在远程办公、在线教育、协同研发等场景中至关重要。私有化部署则进一步满足了企业对数据安全与自主可控的诉求,将协作能力内置于自有服务器。本文聚焦于开源办公套件ONLYOFFICE,它凭借微服务架构和高度兼容的文档处理引擎,成为实现私有化文档协作的优选方案。文中将深入剖析其Document Server、Community Server等核心服务

weixin_34372728的博客 318

用Excel VBA编写改变颜色程序升级版

用excel VBA编写改变颜色和文字小程序升级版

littlespider889的博客 1086

Codex实战手册:零代码实现办公自动化与Web编程部署

Codex是一种面向工程落地的AI Agent平台,其核心是将自然语言指令编译为可执行软件资产,而非单纯生成代码片段。它基于任务拆解、工具调用与工作流编排原理,显著降低编程门槛,使非技术人员也能完成Excel自动化、Web应用开发与一键部署等任务。技术价值体现在绕过传统开发栈陡峭曲线,通过预置模板库、技能库与部署适配器实现‘需求→代码→运行’闭环。典型应用场景包括财务报表自动处理、轻量级博客系统生成、跨应用定时任务编排等。本文聚焦Codex本地部署、中文支持配置及办公自动化、Web编程、部署三大高频实践路径

weixin_30696427的博客 529

避坑指南:用pywin32操作WPS/Office时,如何解决代码补全和接口不统一的问题?

本文详细解析了使用pywin32进行WPS/Office自动化处理时的常见问题与解决方案,包括代码补全支持、接口兼容性处理及性能优化技巧。通过实战案例和高级技巧,帮助开发者高效实现文档处理自动化,提升工作效率。

anuancong1219的博客 448

金山WPS与VBA集成开发环境授权终止风险

<!-- p {margin-bottom:0.21cm} -->       3月19日,一篇金山办公软件WPS与VBA集成开发环境授权终止风险题为“金山办公软件WPS通过“核高基”重大专项验收”的新闻报道,其中宣称:“金山办公软件承担的“网络化中文办公服务平台的研发及产业化”课题近日顺利通过验收。”什么叫“网络化中文办公服务平台”?其具体含义是什么呢?

袁萌专栏 3170

VBA 宏代码 自动更新 FTP 自动升级 模块导入即可

支持个人原创 转发请注明出处-出品人:劫米 由于公司做一个excel模板发给客户,录入后有一些vba的宏代码实现,每次修改都要客户重新录入比较麻烦,所以想到了远程单独实现升级代码块的功能。找了很多网上的资料都没有很好的实现。 所以自己写了一个用宏生成ftp脚本下载后,更新的模块,导入即可使用,非常方便。 自动升级模块我做成了ftp服务器的模式,在ftp上面放了一个ver.txt里面第一行版本号,第二行更新日期,第三行开始可以写一些注释或者更新说明 当判断ver.txt里面的版本与本地excel的autoupgrade_main里面的版本号不一样时,就会去下载ftp上面的bas,cls,frm宏代码块更新(这些格式的文件就是宏代码,导出的格式) 这样每次修改只要右键导出修改的vba代码块 当然每次修改都要修改下autoupgrade_main版本号加下,然后也导出,不然下回用户把其他模块更新完了,但是本地的版本号还是旧的,仍旧会更新 另外还支持手工配置升级的ftp 里面还有一个方法 copyfilexxx 这个是可以从共享服务器上面更新的,目前我没有使用,你修改下调用和相关的代码这个就可以改为从共享上面取更新了。

从编译错误引发的: Excel与Wps各自VBE中引用内容的差别

客户使用Excel2010日常做的表格发给我方Excel 2019写好代码, 在我方Excel 2019 与 Wps 2018 中可以正常运行 然后在我方电脑EXCEL2019打开此文件, 可以看到引用中是 “Visual Basic for Applications” “Microsoft Excel 16.0 Library” “OLE Automation” “Microsoft Offic...

weixin_44462444的博客 2308

VB6升级到VB.NET工具 Visual Basic Upgrade Companion(VBUC v5.0)

Visual Basic Upgrade Companion

S7-200 SMART Modbus RTU从站配置与调试实战指南

本文提供了一份详细的S7-200 SMART PLC配置为Modbus RTU从站的实战指南。内容涵盖从硬件基础、软件准备、指令库调用、核心编程到地址映射与调试排错的完整流程。重点解析了MBUS_INIT与MBUS_SLAVE指令的关键参数配置,并深入探讨了Modbus地址与PLC内部V存储区的对应关系,帮助工程师快速打通通讯链路,实现与上位机、触摸屏等主站设备的稳定数据交互。

potato的博客 752

dubbo-spring-boot-starter 2.7.0 升级到 2.7.3遇到的第一个坑 org.apache.dubbo.remoting

公司有一个分布式集群项目是采用zookeeper +dubbo 架构,因为一些需求需要升级dubbo-spring-boot-starter的版本,但是发现升级后报一个错 org.apache.dubbo.remoting.RemotingException: Not found exported service: com.dubbo.vba_api.service.xiaohe.XiaoheService:12345 in [com.dubbo.vba_api.service.xiaohe.XiaoheS

bhegi_seg的博客 957

STK之Commu模块之三仿真卫星通信链路参数计算

考虑上述衰减的影响,可以得到卫星接收机输入端的载波功 [C] = [PT] +[GT] +[GR] -[L] -[L1] -[L2] (

juanhuokang2681的博客 8267

tlib_vim 使用教程

tlib_vim 使用教程 1. 项目介绍 tlib_vim 是一个为 Vim 编辑器提供实用功能的库。它包含了一系列的实用函数,主要用于增强 Vim 的功能性和易用性。这个库的设计初衷是为了支持其他插件的开发,因此它本身并不需要单独安装,除非其他插件明确要求安装它。tlib_vim 的主要功能包括但不限于: 提供输入列表功能,支持动态过滤和选择。 提供变量设置和处理功能。 提供缓存和持久化功能...

gitblog_00886的博客 857

抖音风控参数‘bd-ticket-guard-client-data’深度解析:从X.509证书到请求签名的完整链路

本文深度解析抖音风控参数‘bd-ticket-guard-client-data’的技术实现,从X.509证书体系到请求签名的完整安全链路。通过Python代码示例,揭示证书生成、签名算法及票据封装等核心机制,帮助开发者理解现代平台风控系统的多层防御架构设计。

weixin_42525738的博客 432

别再只仿真原理图了!用ADS做微带功分器,版图仿真这一步才是关键

本文深入探讨了使用ADS进行微带功分器设计时版图仿真的重要性,指出原理图仿真与版图仿真的本质差异及其对性能的影响。通过详细分析版图效应、关键设置和优化策略,帮助工程师避免常见陷阱,提升设计效率和准确性。文章特别强调了版图仿真在确保微波电路性能中的关键作用。

weixin_42561476的博客 412

Python 结合 openpyxl 批量定制企业报表样式与模板

本文详细介绍了如何使用Python结合openpyxl库批量定制企业报表样式与模板,实现字体、样式和批量调整的自动化处理。通过代码示例展示了如何统一企业VI规范、提升报表生成效率,并解决手工操作中的常见问题,适用于财务、销售等需要频繁生成标准化报表的场景。

weixin_33743661的博客 432

基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取

基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取 一、Sentinel-2简单介绍 哨兵-2系列卫星的主要载荷多光谱成像仪拥有13个谱段,从可见光到近红外再到短波红外,空间分辨率从10m到60m,能实现全所未有的陆地海洋监测水平。其幅宽高达290KM,且A、B双星组合,覆盖能力比美国Landsat8卫星强很多。目前哨兵-2A和哨兵-2B已经实现了5天的重访时间,即使在之前仅有单颗卫星时,...

weixin_44143671的博客 2万+
上一篇: vba rename name
下一篇: array range
tangleisoft
博客等级 码龄16年 8粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值