0
有人能告诉我如何避免内存不足吗?我有2个工作表,我使用下面的代码从26-> 95更改超链接位置。它工作在工作表2上,但是工作表1上一直存在内存不足,而工作表2上没有问题,我的超链接位置成功更改。任何想法?谢谢你。非常感谢VBA宏在工作表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的文件:/// \ My002vs0026 \ $系\文件名 新的超链接LOC的文件:/// \ my002vs0095 \ $系\文件名
,当我使用以下代码,只有部分的片材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
我会改变这一行:'h.Address = Application.WorksheetFunction。 (h.Address,oldtext,newtext)'替换为:'h.Address = Replace(h.Address,oldtext,newtext)' –
您的代码适用于我的情况,因此更改不是必需的。也许这只是替换所有东西的数量,所以表格中的数据也是如此。您应该上传数据的屏幕截图,而不是显示的文本,但超链接网址。 – Irithyll
尝试在声明之后的一开始添加'Application.ScreenUpdating = False'和'Application.EnableEvents = False'。在代码结束时,再次将它们设置为true。 – Sun