VB批量修改excel文件名

如何用VB把一组excel文件名修改为1,2,3...xlsx,请问语言应该怎么编写... 如何用VB把一组excel文件名修改为1,2,3...xlsx,请问语言应该怎么编写 展开
 我来答
sk432600
2015-07-30 · 知道合伙人软件行家
sk432600
知道合伙人软件行家
采纳数:580 获赞数:2264
毕业于华北水利水电学院,本科学位.cad excel 等办公相关软件操作,现为公司技术员

向TA提问 私信TA
展开全部

Sub 批量命名0()

Application.ScreenUpdating = False

    Dim i&, j&, m, n, l$, k, s, path, oname, nname, fs, t$

    Application.ScreenUpdating = False

  With Application.FileDialog(msoFileDialogOpen)

   .AllowMultiSelect = True '允许多选

   .Show '打开文件对话框

 

 '  获取文件名称

   For i = 1 To .SelectedItems.Count

       l = .SelectedItems(i)

       m = Len(l) - Len(WorksheetFunction.Substitute(l, "\", ""))

       k = WorksheetFunction.Substitute(l, "\", "/", m)

       n = WorksheetFunction.Find("/", k)

       Cells(i, 1) = Mid(l, n + 1, Len(l))

  

  '  获取文件路径

  If i = .SelectedItems.Count Then path = Mid(l, 1, Len(l) - Len(Cells(i, 1)))

   Next i

  End With


  '  获取新名字 按自然数编号

  t = "0000"

  If i <= 1000 Then t = "000"

  If i <= 100 Then t = "00"

 ' If i <= 10 Then t = "0"

     For s = 1 To i - 1

       l = Cells(s, 1).Value

       m = Len(l) - Len(WorksheetFunction.Substitute(l, ".", ""))

       k = WorksheetFunction.Substitute(l, ".", "/", m)

       n = WorksheetFunction.Find("/", k)

       Cells(s, 2) = WorksheetFunction.Text(s, t) & Mid(l, n, Len(l))

   Next



  Set fs = CreateObject("Scripting.FileSystemObject")

  For s = 1 To i - 1

  oname = path & Cells(s, 1)

  If fs.fileexists(oname) Then

  nname = path & Cells(s, 2)

  Name oname As nname

  End If

  Next

  Application.ScreenUpdating = True

End Sub


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式