Excelワークブックから一連のワークシートをコピーして新しいワークブックに貼り付けようとしています。私が抱えている問題は、ワークシートを新しいワークブックにコピーすると、フォーミュラは古いワークブックへの参照であるということです。私はブックの名前を取得し、null文字で置き換えようとしましたが、私のコードは古いブックではなく新しいブックを参照していると思います。私は 'ThisWorkbook'と同様に 'ActiveWorkbook'と同様の機能を試しましたが、うまく機能していないようです。ここでVBAを使用して式内のファイル名への参照を削除する
は
Sub CopyToNewWorkbook()
Dim ws As Worksheet
Dim i As Integer
Dim wbCurrent As Workbook
Dim wbName As Variant
Dim wbNew As Workbook
'wbName = ActiveWorkbook.Name
'wbName = ThisWorkbook.Name
Set wbCurrent = ActiveWorkbook
Set wbNew = Workbooks.Add
For Each ws In wbCurrent.Sheets
Do While wbNew.Sheets.Count <= (wbCurrent.Sheets.Count - 3)
For i = 3 To wbCurrent.Sheets.Count
wbCurrent.Sheets(i).Copy after:=wbNew.Sheets(wbNew.Sheets.Count)
Next i
Loop
Next ws
wbNew.Activate
Sheets("Sheet1").Select
ActiveWindow.SelectedSheets.Delete
Cells.Replace What:=MyName, Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub
申し訳ありませんが、コードを入力する時間はありませんが、=(等号)記号をすべて| (パイプ)を使用すると、すべての数式がテキスト文字列に変換されます。次に、ワークシートを新しいワークブックにコピーし、新しいシート上のワークブック名を見つけて置き換え、最後に検索して置換します。 =に戻り、あなたはすべて完了です。 – sous2817
あなたの3つのループは何となく冗長ですか?ベルトとサスペンダー? –
これらの式が現在どのようなものかの例をいくつか示しておけば、おそらく役に立ちます。 –