Excel:批量编辑工作簿和确认
本文最后更新于17 天前,如有版本迭代或环境切变,可告知邮箱到xianghy_m@sina.com指正修改。

1. 工具准备

┃ kimi:减少生成和调改代码的时间

 Vba:批量处理,生成弹窗

2. 变量定义

    Dim filePath As String  文件路径
    Dim workbookName As String
    Dim workbook As Workbook  文件名
    Dim targetWorksheet As Worksheet  表名
    Dim targetCell As Range

3. 需求处理

◤ 单个工作簿

 filePath = "C:\Users\..." ' 设置文件路径和工作簿名称
 workbookName = "***.xlsx" ' 确保文件名包括扩展名一致,如.xlsx

根据工作表名称或索引打开对应filePath & workbookName,编辑相应的单元格值:Set targetCell = targetWorksheet.Range(“单元格名”)

Set workbook = Workbooks.Open(Filename:=filePath & workbookName)
        Set targetWorksheet = workbook.Sheets(1)或者为表名Sheets("表名")
        Set targetCell = targetWorksheet.Range("A1")
        targetCell.Value = "A1内容"
        workbook.Save
        workbook.Close
    Else
        MsgBox "文件不存在: " & workbookName 不存在文件名或表名时弹窗

◤ 单个工作簿下的多个sheet

增加循环,遍历工作簿中的所有工作表,并对每个工作表的特定单元格进行编辑。

 For sheetIndex = 1 To workbook.Sheets.Count    ' 获取当前工作表
            Set targetWorksheet = workbook.Sheets(sheetIndex)
            Set targetCell = targetWorksheet.Range("A1")
                targetCell.Value = "批量写入内容"
            End If
        Next sheetIndex

◤ 多个工作簿

遍历文件夹中的所有工作簿

     Do While fileName <> ""  ' 打开工作
        Set workbook = Workbooks.Open(folderPath & fileName)
        On Error Resume Next ' 简单错误处理,如果工作表不存在则跳过
        Set targetWorksheet = workbook.Sheets("一般为收集或导出的同名表名")
        On Error GoTo 0 ' 重置为默认的错误处理
            Set targetCell = targetWorksheet.Range("A1")
            targetCell.Value = "键入内容"  ' 设置目标单元格并输入文本
            workbook.Save ' 保存并关闭工作簿
            workbook.Close
        Else
            MsgBox "工作簿 " & workbook.Name & " 中不存在名为 '**' 的工作表。"
            workbook.Close SaveChanges:=False
        End If
        
        ' 获取下一个工作簿的名称
        fileName = Dir()
    Loop

如需同时修改多个单元格值,可以按如下操作:

 With targetWorksheet
                .Range("A1").Value = "A1示例文本"
                .Range("A2").Value = "A2示例文本"
                .Range("G142").Value = "A3示例文本"
            End With

◤ 弹窗提醒

宏会遍历指定文件夹下的所有工作簿,对每个工作簿中的多个单元格执行操作,直到所有工作簿都被处理。如果遇到任何问题,

如工作表不存在,弹出消息框1。批量修改后,弹窗完成框

 If Not targetWorksheet Is Nothing Then
        存在表名时执行if
        Else
            MsgBox "工作簿 " & workbook.Name & " 中不存在名为 '表名' 的工作表。


MsgBox "所有工作簿已处理完毕。"
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇