以下のコードを使用して、Excelでユーザーが共有するファイルのアドインを参照するパスを削除しています。それはいくつかのファイルで動作しますが、新しいファイルでそれを使用し、オープン時にランタイムエラー6オーバーフローエラーが発生します。セル置換行で停止しています。ワークシートをループするときにランタイムエラー6がオーバーフローする
Private Sub Workbook_Open()
Dim i As Long
Dim strWorksheetName As String
strWorksheetName = ActiveSheet.Name
Application.DisplayAlerts = False
For i = 1 To Sheets.Count
Sheets(i).Activate
If Sheets(i).Type = xlWorksheet Then
Cells.Replace What:="'c:\*xla*'!", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End If
Next i
Application.DisplayAlerts = True
Sheets(strWorksheetName).Activate
End Sub
私は自分の答えが良いと思ったので、私は自分の答えを削除しようとしていましたが、まずテストをすることにしました。私は3つのシートを持つワークブックを作成し、各シートのA1に異なる値を設定し、1つのシートを隠してから、以下を実行しました:「ワークシートとしてのワークシート」「各ワークシートのための」Debug.Print ws.Name' 'ws。 Debug.Print Cells(1,1).Value'をアクティブにします。Debug.Print ActiveSheet.Cells(1,1).Value' 'ActiveSheet.Cells(1,1).Select''Debug.Print Selection.Value' 「次へ」私は間違いがあると思ったが、それは得られなかった。私のバージョンのExcelが奇妙なのですか、または隠れたシートについて間違って考えたことはありますか? – YowE3K
確かに奇妙です。私は、隠れたワークシートをエラーとして起動したことを思い出しました。実際には、私はこれについての質問にも反応したと信じています(私は私の回答を証明します)。私はVB7でxl2016でこれを実行しましたが、非表示のワークシートはアクティブ化されませんでしたが、エラーもスローされませんでした。私は別のバージョンでこの件についてもっと調べなければならないだろうが、それは明日か次になるだろう。これはすべて価値のある質問かもしれません。 – Jeeped
私は両方のソリューションを試しましたが、それでも同じ問題があります。マクロがパスを削除しているので、カスタム関数とのやりとりがあります。私が見つけた唯一の解決策は、元のマクロを実行し、一時的に通常の場所からカスタム関数を含むアドインを移動することです。その後、すべてのパスが削除され、アドインを通常の場所に追加すると、ファイルが機能します。トリックに起因する可能性のあるアドインマクロへの呼び出しを無効にするコマンドがいくつかあった場合。私は手動計算に設定しようとしましたが、うまくいきません。 – john