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
相关推荐
LAM LAB4 天前
【VBA】Excel指定单元格范围内字体设置样式,处理导出课表单元格
excel·vba
在这habit之下5 天前
Keepalived学习总结
excel
Youngchatgpt5 天前
如何在 Excel 中使用 ChatGPT:自动化任务和编写公式
人工智能·chatgpt·自动化·excel
开开心心就好5 天前
安卓开源应用,超时提醒紧急人护独居安全
windows·决策树·计算机视觉·pdf·计算机外设·excel·动态规划
D_C_tyu5 天前
Vue3 + Element Plus | el-table 多级表头表格导出 Excel(含合并单元格、单元格居中)第二版
vue.js·elementui·excel
骆驼爱记录5 天前
WPS页码设置:第X页共Y-1页
自动化·word·excel·wps·新人首发
Cxiaomu6 天前
Python 文件解析: Excel / Word / PDF 的解析、处理、预览与下载
python·word·excel
2501_930707786 天前
如何使用C#代码从 PDF 中提取表格并另存为Excel文件
pdf·excel
pacong6 天前
B生所学EXCEL
人工智能·excel