下面是完整的宏代码,请大师帮忙修正下。谢谢!!
Sub GetFoldersAndFiles()
ActiveSheet.Unprotect
Dim arr()
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = "C:\"
If .Show = True Then Path = .SelectedItems(1) & "\"
End With
If Path = "" Then Exit Sub
MyName = Dir(Path, vbDirectory) '查找目录
Do
If MyName <> "." And MyName <> ".." Then
n = n + 1
ReDim Preserve arr(1 To n)
arr(n) = IIf((GetAttr(Path & MyName) And vbDirectory) = vbDirectory, "<" & MyName & ">", MyName)
End If
MyName = Dir
Loop While MyName <> ""
Sheet1.Range("C15").Resize(n, 1) = WorksheetFunction.Transpose(arr)
Sheet1.Range("C15:C494").Sort Key1:=Range("C15"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
ActiveSheet.Protect
End Sub
Excel 宏运行时错误,提示1004代码,正在试图更改被保护的只读单元格或图表。
答案:1 悬赏:10 手机版
解决时间 2021-03-19 12:41
- 提问者网友:世勋超人
- 2021-03-18 20:31
最佳答案
- 五星知识达人网友:轻雾山林
- 2021-03-18 21:22
在这两名之间加一句:
Loop While MyName <> ""
ActiveSheet.Unprotect '取消保护
Sheet1.Range("C15").Resize(n, 1) = WorksheetFunction.Transpose(arr)
Loop While MyName <> ""
ActiveSheet.Unprotect '取消保护
Sheet1.Range("C15").Resize(n, 1) = WorksheetFunction.Transpose(arr)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯