欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Excel VBA一些操作语法

程序员文章站 2022-07-03 21:02:49
...

楼主学Java之前是学Excelvba的。现在有空就记录一些操作的语法


'循环文件夹下面的文件
Sub loopFile()
  Dim file As String
  '查找某路径下面所有的txt文档并弹出文件名
  file = Dir("C:\Users\星驰太帅了\Desktop\excel\*.txt")
  MsgBox file
    '如果文件名不为空代表还有文件,那么就一直循环
    Do While file <> ""
     '第二次不需要再填写路径,要不然会造成死循环
     file = Dir
     '再判断一下,免得当为空时还做了操作
     If file = "" Then Exit Do
     MsgBox file
    Loop
  '结束语提示
  MsgBox "end"
End Sub


顺便说一下     Debug.Print "content" 会把 content 打印到立即窗口中


'获取指定文件夹下面所有子文件夹的名称
Sub loopPath()
Dim fso, f, n&
   Set fso = CreateObject("Scripting.FileSystemObject")
    For Each floder1 In fso.GetFolder("C:\Users\星驰太帅了\Desktop\excel").SubFolders
        MsgBox floder1.Name
    Next
End Sub

获取文件夹下面的所有文件夹第一层目录下面的所有文件,多层子目录可以用递归


'循环文件夹下面的文件
Sub loopFile()
  Dim file As String
  '查找某路径下面所有的txt文档并弹出文件名
  file = Dir("C:\Users\星驰太帅了\Desktop\excel\*.txt")
  Debug.Print "根文件下面的文件   " & file
    '如果文件名不为空代表还有文件,那么就一直循环
    Do While file <> ""
     '第二次不需要再填写路径,要不然会造成死循环
     file = Dir
     '再判断一下,免得当为空时还做了操作
     If file = "" Then Exit Do
     Debug.Print "根文件下面的文件   " & file
    Loop
   '调用函数
   loopPath
  '结束语提示
     Debug.Print "end"
End Sub

'获取指定文件夹下面所有子文件夹的名称
Function loopPath()
Dim fso, f, n&
   Set fso = CreateObject("Scripting.FileSystemObject")
    For Each floder1 In fso.GetFolder("C:\Users\星驰太帅了\Desktop\excel").SubFolders
        For Each f In floder1.Files
           Debug.Print floder1.Name & "文件夹下面的" & f.Name
        Next
    Next
End Function

Excel VBA一些操作语法



批量修改文件夹下面所有xlsx文件的第一个单元格的值


'循环文件夹下面的文件
Sub loopFile()
  '出错时直接跳到完成
  On Error GoTo 100
  Dim file As String
  Dim basePath As String
  basePath = "C:\Users\星驰太帅了\Desktop\excel\"
  '忽略修改警告
   Application.DisplayAlerts = False
  '查找某路径下面所有的txt文档并弹出文件名
  file = Dir("C:\Users\星驰太帅了\Desktop\excel\*.xlsx")
  a = setValue(basePath, file, "zxc")
  Debug.Print "根文件下面的文件   " & file
    '如果文件名不为空代表还有文件,那么就一直循环
    Do While file <> ""
     '第二次不需要再填写路径,要不然会造成死循环
     file = Dir
     '再判断一下,免得当为空时还做了操作
     If file = "" Then Exit Do
     a = setValue(basePath, file, "zxc")
     Debug.Print "根文件下面的文件   " & file
    Loop
  '结束语提示
     Debug.Print "end"
  '重新开启警告
   Application.DisplayAlerts = True
100:
    MsgBox "修改完成"
End Sub

'设置传入的工作薄地址第一个sheet表第一个单元格的值为 value, 设置完就关闭该工作薄
Function setValue(basePath, worksPath, value)
  filePath = basePath & worksPath
  With Workbooks.Open(filePath)
       .Sheets(1).Range("a1") = value
       .Save '修改完需要保存文件
       .Close
  End With
End Function



暂时先记录这些,有空再继续更新!!!毕竟现在学的是java,这个只是无聊为了回顾一下