VBA打开其他Excel文件

前言

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


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

场景说明:

1.新建一个宏文件VBA_Code.xlsm

2.与VBA_Code.xlsm文件在同一路径下有名为EmployeeInfo.xlsx的文件

3.需要将EmployeeInfo.xlsx的A1单元格写入当前日期值

示例代码

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

c 复制代码
Sub OpenTheFile()

    Dim filePath As String
    ' 定义工作表及工作簿数组
    Dim ws As Worksheet
    Dim 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.Save
    wb.Close
    
    
End Sub

二、模糊匹配文件名称

场景说明:

1.新建一个宏文件VBA_Code.xlsm

2.与VBA_Code.xlsm文件在同一路径下有名为EmployeeInfo202407.xlsx、Test202407.xls的文件

3.需要将EmployeeInfo202407.xlsx和Test202407.xls两个文件的A1单元格都写入当前日期值,但是文件名称中的日期不固定

示例代码

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

c 复制代码
Sub OpenFile()

    Dim myFile As String
    Dim filePath As String
    ' 定义工作表及工作簿数组
    Dim wsE As Worksheet
    Dim wsT As Worksheet
    Dim wbE As Workbook
    Dim wbT As Workbook
    
    ' 定义该文件路径
    filePath = ThisWorkbook.Path
    ' 定义文件路径下的所有文件
    myFile = Dir(filePath & "\*.xls*")
    
    ' 循环处理所有文件
    Do While myFile <> ""
        ' 匹配Employee文件
        If myFile Like "Employee*" Then
            Workbooks.Open filePath & "\" & myFile
            Set wsE = ActiveWorkbook.Worksheets("Sheet1")
            Set wbE = ActiveWorkbook
        ' 匹配Test文件
        ElseIf myFile Like "Test*" Then
            Workbooks.Open filePath & "\" & myFile
            Set wsT = ActiveWorkbook.Worksheets("Sheet1")
            Set wbT = ActiveWorkbook
        
        End If
    Loop
    
    
    ' 写入当前时间值
    wsE.Cells(1, "A").Value = Now()
    wsT.Cells(1, "A").Value = Now()
    ' 保存并关闭
    wbE.Save
    wbE.Close
    
    wbT.Save
    wbT.Close
    
    
End Sub
相关推荐
CodeCraft Studio21 小时前
Excel处理控件Aspose.Cells教程:使用 Python 将 Pandas DataFrame 转换为 Excel
python·json·excel·pandas·csv·aspose·dataframe
星空的资源小屋1 天前
PPTist,一个完全免费的 AI 生成 PPT 在线网站
人工智能·python·电脑·excel
开开心心_Every1 天前
免费语音合成工具:66种音色随心选
人工智能·面试·java-ee·计算机外设·电脑·maven·excel
偷心伊普西隆2 天前
EXCEL VBA 清空Excel工作表(Sheet)的方法
microsoft·excel
Coding_Doggy2 天前
苍穹外卖Day12 | Apache POI、导出Excel报表、HttpServletResponse、工作台
excel
l1t3 天前
张泽鹏先生手搓的纯ANSI处理UTF-8与美团龙猫调用expat库读取Excel xml对比测试
xml·人工智能·excel·utf8·expat
Source.Liu3 天前
【Python自动化】 21 Pandas Excel 操作完整指南
python·excel·pandas
会飞的小菠菜3 天前
如何根据Excel数据表生成多个合同、工作证、录取通知书等word文件?
word·excel·模板·数据表·生成文件
Access开发易登软件4 天前
Access开发导出PDF的N种姿势,你get了吗?
后端·低代码·pdf·excel·vba·access·access开发
課代表4 天前
VBA 中的 Excel 工作表函数
excel·vba·函数·对象·属性·range·静态变量