楼主学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
批量修改文件夹下面所有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,这个只是无聊为了回顾一下