作者:绿色风
分类:
时间:2022-08-17
浏览:194
楼主 杨开科 |
- Sub test() '打开某一目录中所有的工作簿,依次修改某单元格内容
- '变量声明
- Dim wb As Workbook
- Dim sht As Worksheet
- Dim i%
- Dim err
- Application.ScreenUpdating = False '关闭屏幕更新,防止闪屏、加快代码运行
- With Application.FileSearch '建立一个搜索
- .NewSearch '新搜索
- .LookIn = "D:\1391" '设定搜索的范围
- .FileType = msoFileTypeExcelWorkbooks '查找所有Excel类型的文件
- .Execute
- For i = 1 To .FoundFiles.Count '逐个处理找到的文件列表中的每个工作簿
- Set wb = Workbooks.Open(.FoundFiles(i)) '打开它
- For Each sht In wb.Sheets '在新打开的工作簿的工作表里循环
- If sht.Name = "Sheet1" Then '先判断表名,如果表名为Sheet1则写入数据
- sht.[A1] = Date '写入当天日期数据
- Exit For '或找到Sheet1则立即退出For循环,不再往后找
- Else '如果表名不是Sheet1,表明未找到
- err = err + 1 '记录错误次数
- End If
- Next sht '循环下一个工作表
- If err > 0 Then MsgBox wb.FullName & ",此工作簿中无Sheet1工作表,数据写入失败!", 16 '如果循环完工作簿中的所有工作表均无Sheet1,提示错误信息
- wb.Close True '保存并关闭打开的工作簿
- Next i '继续打开下一个工作簿
- End With '结束With语句块
- Application.ScreenUpdating = True '重新打开屏幕更新
- MsgBox "已处理完毕!", 64, "提示"
- End Sub
|
2楼 apolloh |
谢谢杨兄分享,FileSearch在Excel2007中已经取消了,这帖移动到【难忘经典】中。 |
3楼 高玉甫 |
经典!学习了,谢谢了。 |
4楼 mjgdxx |
实用的功能,并且注释多 |
5楼 杨开科 |
自 Microsoft Office 2003 以来的对象模型更改xlsx.rar |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一