2016-05-30 1 views
0

メモリ不足の回避方法を教えてもらえますか?私はハイパーリンクの場所を26-> 95に変更するために次のコードを使用した2つのワークシートがあります。それはシート2上で働いたが、シート1上ではメモリ不足を言っていたが、シート2上では問題ない。ハイパーリンクの位置は正常に変更された。何か案が?ありがとう。 /// \ my002vs0095 \ DEPT $ \ファイル名VBAマクロシート1では動作しますが、シート2では動作しません

と私が使用: 新しいハイパーリンクのLOCはファイルです/// \ My002vs0026 \ DEPT $ \ファイル名:感謝

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はファイルです以下のコードは、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 
+0

私は 'h.Address = Application.WorksheetFunction 'という行を変更します。 h.Address = Replace(h.Address、oldtext、newtext) ' –

+0

あなたのコードは私の場合には機能しますので、変更する必要はありません。たぶん、すべてを置き換えるだけの量なので、シートのデータです。表示されたテキストではなくハイパーリンクURLのデータのスクリーンショットをアップロードする必要があります。 – Irithyll

+0

宣言の直後に、 'Application.ScreenUpdating = False'と' Application.EnableEvents = False'を最初に追加してみてください。コードの最後に、両方をtrueに設定し直してください。 – Sun

答えて

0

メモ帳使用してこれを解決:

1)保存します単一のWebページとしてのExcelスプレッドシート。 2)[検索/置換]オプションを実行して、このページを(メモ)メモ帳で編集します。 3)このメモ帳ファイルをExcelファイルとして保存します。

*手順はネット上で見つかりました

関連する問題