excel如何利用VBA一键更改所有文件的名称
心得(2):如何利用VBA一键更改多个excel文件为指定的名称
问题:如何一键更改相同目录下的所有excel文件的名称,改为这个excel文件名内的每个单元格的内容,如我这个因为是要统计所有比赛队伍的信息,因为大部分人的excel文件名都不规范,这样如果有人想更新文件就得在文件夹里一个一个找很麻烦,就直接把每个队伍的文件命名为他的比赛项目名,这样在一定程度上就具有唯一性
解决:首先把所有要整合的excel文件放在一个路径不含有中文名的目录下,然后新建一个excel文件右键sheet点击查看代码,这时候你的画面上会出现一个编辑器,你这这上面利用VBA编写语言,最后点击F5直接运行即可
常规解决方案:
打开文件,复制项目名,关闭文件,重命名
利用VBA一键修改:
- 得到全是英文目录下的一个文件名
- 打开这个文件
- 得到这个文件对应的项目名
- 推出并关闭这个文件
- 重命名这个文件
- 因为这个项目名可能会出现很多windows的非法字符所以要利用replace函数出去一下
7. 而且还会出现许多不知名的错误,比如说重名,没写项目名等,这样就要使用的VBA的错误处理机制
源码如下:
Sub 批量改名()Dim mypath As String, myname As String, awbname As String, arg As StringDim wbcount As Integer, i As IntegerDim olds As String, news As String'关闭excel的刷新Application.ScreenUpdating = False'禁止弹出对话框Application.DisplayAlerts = False'得到本文件的相对地址mypath = ActiveWorkbook.Path'当前工作的excel的文件名awbname = ActiveWorkbook.Name'任意打开文件夹下的某一个文件wbcount = 0myname = Dir(mypath & "\" & "*.xlsx")'定义一个变量为项目的名称(文件中的命名)arg = ""'如果当前的文件名为空的字符串("")表示已经没有更多的文件了跳出循环Do While myname <> ""If myname <> awbname Then'打开当前的文件夹Set wb = Workbooks.Open(mypath & "\" & myname)'得到这个文件的项目名的名称arg = wb.Sheets(1).Range("B5")wbcount = wbcount + 1'关闭文件wb.Close False'除去arg中命名规则不允许的字符arg = Replace(arg, "\", "")arg = Replace(arg, " ", "")arg = Replace(arg, "/", "")arg = Replace(arg, "?", "")arg = Replace(arg, "<", "")arg = Replace(arg, ">", "")arg = Replace(arg, "'", "")arg = Replace(arg, ":", "")arg = Replace(arg, "*", "")arg = Replace(arg, """", "")arg = Replace(arg, ".", "")arg = Replace(arg, "|", "")arg = Replace(arg, Chr(10), "")arg = Replace(arg, Chr(32), "")olds = mypath & "\" & mynamenews = mypath & "\" & arg & ".xlsx"'将这个文件的名称换成这个项目名On Error GoTo MyErr '错误导向Name olds As newsEnd If'随机打开本文件夹的另一个文件myname = DirLoop'结束程序并且恢复之前的操作
MsgBox "一共更改了 " & wbcount & " 个文件"
Application.ScreenUpdating = True
Application.DisplayAlerts = True'因为这个VBA语言到最后会运行错误标志的内容所以在结束后要让他失效
olds = ""'错误标志
MyErr:If olds = "" ThenElsearg = arg & wbcountnews = mypath & "\" & arg & ".xlsx"Name olds As newsResume NextEnd IfEnd Sub
excel如何利用VBA一键更改所有文件的名称相关推荐
- 如何利用VBA批量更改Excel文件的内容
心得(5):利用VBA批量更改Excel文件的内容 问题:因为接受的所有Excel文件都是相同格式的,但是有个单元格的内容就是需要,主办方来更改,如下所示: 获奖级别,得由主办方来更改,但是如果一个一 ...
- Win10重装系统后更改用户文件夹名称的方法
一. 为什么要更改用户文件夹名称 最近笔记本电脑的Win10系统重装后,C:\Users文件夹下的用户文件夹名称默认是微软账户的前五位数字(如下图所示),而我们一般习惯用户名是带有意义的字母,所以很多 ...
- 怎样修改计算机用户文件名,win10修改用用户文件夹名字怎么操作_win10更改用户文件夹名称方法...
每个电脑用户名都会放一个文件夹,这样我们才知道这些文件属于哪个用户的,不过有的用户可能想要修改用户文件夹名字,应该有许多用户不知道怎么修改,那么win10修改用用户文件夹名字怎么操作?下面我们就一起来 ...
- 电脑文件管理,教你一键将大量文件夹名称翻译成英文
如何处理文件名称,比如将多个文件夹的名称翻译一下,中文转英语.英语转中文等等.今天小编给大家分享一个简单好用的处理技巧,下面一起来试试吧. 需要哪些工具? 文件夹素材 怎么快速处理? 步骤1:运行[文 ...
- 关于Excel下通过VBA实现工作簿文件下工作表的合并
对于普通使用者而言,Excel是一个比较强大的数据处理工具.一般公司的普通职员常使用它来完成数据的录入分析,但是当面对处理经由多人按统一模板统计完成的录入数据分析时,数据将分散存放在多个.xlsx文件 ...
- php批量打印快递单,excel怎么利用vba实现批量套打快递单批量打印单据?
excel vba 批量套打快递单,批量打印单据,可以自定义修改设置新的格式. 快递套打模板2015:点击下载 1.设置快递单的自定义纸张.选择对应打印机-点击打印服务器属性-勾选创建新表单-输入表单 ...
- 在EXCEL中通过VBA实现批量读取文件夹内的文件名称
需求:有时候需要批量读取某个文件夹中的文件名称,有的程序只能读取同类型的,当文件为不同类型时就无法读取,因此需要写一个VBA程序,实现批量读取同一文件夹内的所有文件名称,且不需要修改程序就可以自由选择 ...
- 在Excel中利用VBA编写词组合,可用于起名或推广关键词
1.打开Excel,按快捷键ALT+F11调出VBA编辑器,双击Sheet1,将以下代码拷贝,保存 Sub 两个词组合() Dim a() As Variant, b As Integer, n ...
- Excel收纳箱:VBA一键删除当前工作表的条件格式
如下图所示想删除表中多个区域的条件格式,如何完成操作呢? (方方格子插件) 1.选择diy工具箱操作 2.选择最左侧的收纳箱工具 3.弹出对话框我们选择一个本地新建的操作 4.弹出对话框我们输入如 ...
- Excel中利用vba将多个sheet合并在一个sheet中的方法
vba代码如下: Sub 合并当前工作簿下的所有工作表()Application.ScreenUpdating = FalseFor j = 1 To Sheets.CountIf Sheets(j) ...
最新文章
- python实现二分查找(折半查找)算法
- 大型网站典型故障案例分析
- 【模拟】聊天服务器的外部流量
- 征文通知:第三届(2016)科学数据大会——科学数据与创新发展
- SpringBoot @CachePut注解的使用原理
- iOS开发之地图与定位
- oracle脚本转mpp脚本,范本:使用expdp/impdp克隆生成一个新数据库
- java 使用websocket_Java使用WebSocket
- 如何查看mysql的sql语句索引_mysql 查看sql语句索引情况 详解explain
- No package python27 available
- js根据银行卡号判断属于哪个银行,并返回银行缩写及银行卡类型--bin识别
- 4K TEST SEQUENCES 测试视频片段下载
- ubuntu安装openpose
- ROS机器人学习历程三:Publisher 和Subscriber
- NTP网络校时(北斗卫星授时设备)技术核心源码让网络时间同步不再难
- 用户体验报告——石墨文档
- 深圳一公司在开源社区表示“要源码上门自取”,引来百万粉大V突袭公司,结果让人意外!...
- Castor学习笔记(一)
- 什么叫方法签名 Java
- spring boot 设置默认主页
热门文章
- i.MX6ULL终结者MPU6050 六轴传感器例程MPU6050简介
- 2021起重机作业 (Q)模拟考试题库及软件
- 7-3 jmu-python-凯撒密码加密算法 (10分):编写一个凯撒密码加密程序,接收用户输入的文本和密钥k,对明文中的字母a-z和字母A-Z替换为其后第k个字母。
- Jenkins下载安装配置教程(官网)
- Java牛客项目课_仿牛客网讨论区_已经看完的部分
- 抖音广告怎么投放【抖音广告投放教程】
- wav格式怎么转换成flac?
- 电吉他效果器音频处理(1)——失真效果器、超载失真效果器、移相效果器、弗兰格效果器
- wegame每次登陆都要滑动验证_wegame登录验证码白屏
- JButton与Button的区别