【问题标题】:Running a macro on a protected sheet在受保护的工作表上运行宏
【发布时间】:2021-08-01 02:47:03
【问题描述】:

我正在尝试在 VBA 中运行一个宏,它列出了特定文件夹的所有文件及其超链接。我的代码在不受保护时有效。但是当它受到保护时它不起作用。这是我的超链接宏。当工作表受到保护时,我所有的其他宏都可以工作。只是不是超链接之一。我已将私有子宏存储在 ThisWorkbook

Sub updatting()

Dim xFSO As Object
    Dim xFolder As Object
    Dim xFile As Object
    Dim xPath As String
    Dim I As Integer
    xPath = "C:\Users\risha\Downloads\a_few_little_tests\New folder"
    If xPath = "" Then Exit Sub
    Set xFSO = CreateObject("Scripting.FileSystemObject")
    Set xFolder = xFSO.GetFolder(xPath)
    For Each xFile In xFolder.Files
        I = I + 1
        ActiveSheet.Hyperlinks.Add Cells(I, 14), xFile.Path, , , xFile.Name
    Next

End Sub

Private Sub Workbook_Open()


Sheet3.Protect Password:="abc", UserInterFaceOnly:=True



End Sub

【问题讨论】:

  • 您确定当前工作表是Sheet3
  • 是的,当我取消保护它时,它可以工作。它不在保护下工作。我可以使用表。取消保护,但是如果代码中有错误,那么工作表将保持不受保护的状态。
  • 它应该可以工作。我现在在 Excel 2016 上进行了测试。如果您害怕使其不受保护,请实施错误处理并让代码跳转到那里,以便在发生错误时保护工作表。
  • 好的,我会尝试错误处理。运行上面发布的代码时,我没有收到任何错误。但是超链接是混在一起的,每一个都是错误的文件。有些文件名没有显示出来。

标签: excel vba


【解决方案1】:

在 I = I + 1 之后检查这个

   I = I + 1
  ActiveSheet.Cells(I, 14).Value = xFile.Name
  ActiveSheet.Hyperlinks.Add Cells(I, 14), xFile.Path, , , xFile.Name

【讨论】:

    猜你喜欢
    • 2020-10-05
    • 2018-03-11
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 2016-11-24
    相关资源
    最近更新 更多