当前位置: 首页 > news >正文

VBA打开其他Excel文件

前言

本节会介绍通过VBA实现打开其他excel文件,包括模糊匹配文件名称、循环同时打开多个文件,并获取工作表及工作簿进行数据操作后,对打开的文件进行保存并关闭操作。


一、打开固定文件名称的文件

场景说明:
1.新建一个宏文件VBA_Code.xlsm
2.与VBA_Code.xlsm文件在同一路径下有名为EmployeeInfo.xlsx的文件
3.需要将EmployeeInfo.xlsx的A1单元格写入当前日期值

示例代码

以下代码中,定义filePath用来存放当前文件的路径,wswb分别用来存放工作表及工作簿对象

Sub OpenTheFile()Dim filePath As String' 定义工作表及工作簿数组Dim ws As WorksheetDim wb As Workbook' 定义该文件路径filePath = ThisWorkbook.Path' 获取路径下所有文件,这里需要提供完整的文件路径Workbooks.Open filePath & "\EmployeeInfo.xlsx"' 设置工作表及工作簿Set ws = ActiveWorkbook.Worksheets("Sheet1")' 这里也可以通过工作表索引位置来设置,从1开始'Set ws = ActiveWorkbook.Worksheets(1)Set wb = ActiveWorkbook' 写入当前时间值ws.Cells(1, "A").Value = Now()' 保存并关闭wb.Savewb.CloseEnd Sub

二、模糊匹配文件名称

场景说明:
1.新建一个宏文件VBA_Code.xlsm
2.与VBA_Code.xlsm文件在同一路径下有名为EmployeeInfo202407.xlsx、Test202407.xls的文件
3.需要将EmployeeInfo202407.xlsx和Test202407.xls两个文件的A1单元格都写入当前日期值,但是文件名称中的日期不固定

示例代码

文件名称不固定,可以使用Like搭配星号<*>进行模糊匹配。完整的代码如下:

Sub OpenFile()Dim myFile As StringDim filePath As String' 定义工作表及工作簿数组Dim wsE As WorksheetDim wsT As WorksheetDim wbE As WorkbookDim wbT As Workbook' 定义该文件路径filePath = ThisWorkbook.Path' 定义文件路径下的所有文件myFile = Dir(filePath & "\*.xls*")' 循环处理所有文件Do While myFile <> ""' 匹配Employee文件If myFile Like "Employee*" ThenWorkbooks.Open filePath & "\" & myFileSet wsE = ActiveWorkbook.Worksheets("Sheet1")Set wbE = ActiveWorkbook' 匹配Test文件ElseIf myFile Like "Test*" ThenWorkbooks.Open filePath & "\" & myFileSet wsT = ActiveWorkbook.Worksheets("Sheet1")Set wbT = ActiveWorkbookEnd IfLoop' 写入当前时间值wsE.Cells(1, "A").Value = Now()wsT.Cells(1, "A").Value = Now()' 保存并关闭wbE.SavewbE.ClosewbT.SavewbT.CloseEnd Sub

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 算法day02 回文 罗马数字转整数
  • 从资金管理的角度 谈谈伦敦金投资技巧
  • 在 Azure 云中开始使用适用于 Ubuntu 的 Grafana
  • SpringMVC:SpringMVC执行流程
  • uniApp 封装VUEX
  • 【HarmonyOS NEXT】鸿蒙如何让List组件不满一屏时,还要能滑动和回弹
  • ONLYOFFICE8.1版本桌面编辑器测评
  • 白骑士的C语言教学高级篇 3.5 性能优化
  • 生物化学笔记:电阻抗基础+电化学阻抗谱EIS+电化学系统频率响应分析
  • 初步认识 B树(B-tree)
  • 如何使用 SwiftUI 构建 visionOS 应用
  • ActiveMq工具之管理页面说明
  • kotlin 中 string array 怎么表示
  • 通信软件开发之业务知识:PON口割接什么意思?
  • 单例模式之饿汉式
  • JavaScript-如何实现克隆(clone)函数
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • CSS 三角实现
  • JavaScript实现分页效果
  • Java基本数据类型之Number
  • Js基础知识(一) - 变量
  • Object.assign方法不能实现深复制
  • React中的“虫洞”——Context
  • SQLServer之创建数据库快照
  • Theano - 导数
  • windows下如何用phpstorm同步测试服务器
  • 从setTimeout-setInterval看JS线程
  • 搭建gitbook 和 访问权限认证
  • 关于 Cirru Editor 存储格式
  • 关于List、List?、ListObject的区别
  • 观察者模式实现非直接耦合
  • 解析带emoji和链接的聊天系统消息
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 利用DataURL技术在网页上显示图片
  • 前端_面试
  • 区块链共识机制优缺点对比都是什么
  • 一、python与pycharm的安装
  • python最赚钱的4个方向,你最心动的是哪个?
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • # Redis 入门到精通(七)-- redis 删除策略
  • #java学习笔记(面向对象)----(未完结)
  • (1) caustics\
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (七)Activiti-modeler中文支持
  • (算法)大数的进制转换
  • (一)Docker基本介绍
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • .bashrc在哪里,alias妙用
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Core中Emit的使用
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • @html.ActionLink的几种参数格式
  • @Import注解详解
  • [AIGC] Spring Interceptor 拦截器详解