VBA宏在工作表1上工作,但在工作表2上不工作

时间:2016-05-30 09:05:26

标签: excel vba

有人能告诉我如何避免内存不足吗?我有2个工作表,我使用以下代码来更改26-> 95的超链接位置。它在第2页上工作,但在第1页上它继续说出内存不足,而在第2页上,我的超链接位置成功更改没有问题。任何的想法?感谢你。非常感谢

 Sub HyperLinkChange()
   Dim oldtext As String
   Dim newtext As String
   Dim h As Hyperlink

   oldtext = "My002vs0026"
   newtext = "my002vs0095"


   For Each h In ActiveSheet.Hyperlinks
   x = InStr(1, h.Address, oldtext)
   If x > 0 Then
       If h.TextToDisplay = h.Address Then
            h.TextToDisplay = newtext
       End If
       h.Address = Application.WorksheetFunction. _
       Substitute(h.Address, oldtext, newtext)
   End If
   Next
End Sub

当前的超链接loc是file:/// \ My002vs0026 \ dept $ \ filename 新的超链接loc是file:/// \ my002vs0095 \ dept $ \ filename

当我使用以下代码时,只有部分表1的超链接发生了变化,而有些则保持不变:

Option Explicit

Sub ChangeHyperlinks()
    Dim h As Long
    Dim oldDr As String, newDr As String
    oldDr = "\My002vs0026\"
    newDr = "\my002vs0095\"

    With Worksheets("Sheet1")
            For h = 1 To .Hyperlinks.Count
            With .Hyperlinks(h)
                'Debug.Print .Address
                .Address = Replace(.Address, oldDr, newDr, 1, -1,     vbTextCompare)
                'Debug.Print .Address
            End With
        Next h
    End With
End Sub

1 个答案:

答案 0 :(得分:0)

使用记事本解决了这个问题:

1)将Excel电子表格另存为单个网页。 2)通过运行“查找/替换”选项在(例如)记事本中编辑此页面。 3)将此记事本文件保存为Excel文件 - 完成作业。

在网上找到了*步骤