我使用的是文件扩展数组并循环遍历工作簿文件夹。代码命名为Sheet(1).name =“MyName”
我注意到即使数组中没有actionButton
,它仍然会打开并命名表格。
这是代码。任何人都可以看到他们是否遇到同样的问题并且能够解决它。
"*.xlsm"
答案 0 :(得分:7)
HELLO.ABCD
的旧版短(8.3)文件名看起来像ABCDEF~1.ABC
- 请参阅扩展名被截断为3个字符。
在你的情况下,GET.XLSM
将ABCDEF~1.XLS
和8.3 form is also matched由Win32 API FindFirstFile
(这是Dir()
调用的内容)当你指定*.XLS
只需使用
过滤掉循环中的异常If Not UCase$(MyFile) Like "*.XLSM" Then
....
答案 1 :(得分:3)
虽然Alex已经解决了您的查询,但我已将您的代码更新为
关闭时恢复活动
Sub LoopThroughFolder()
Dim Wb As Workbook
Dim MyFile As String
Dim MyDir As String
Dim StrFile As String
MyDir = "C:\temp\"
ChDir MyDir
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
StrFile = "*.xls*"
MyFile = Dir(MyDir & StrFile)
Do While Len(MyFile) > 0
If MyFile Like "*.xlsx" Or MyFile Like "*.xlx" Then
Set Wb = Workbooks.Open(MyFile)
On Error Resume Next
Wb.Sheets(1).Name = "MySheet"
On Error GoTo 0
Wb.Save
Wb.Close False
End If
MyFile = Dir()
Loop
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub