次のようなコードがあります:
Sub NewYearData()
Dim wb1 As Workbook, wb2 As Workbook
Dim r1 As Range, r2 As Range
Dim addy As String, sh As Worksheet
Dim shName As String
Set wb1 = Workbooks("PreviousYear.xlsm")
Set wb2 = Workbooks("CurrentYear2.xlsx")
addy = "C16:AH18"
For Each sh In wb1.Sheets
shName = sh.Name
Set r1 = sh.Range(addy)
Set r2 = wb2.Sheets(shName).Range(addy)
r1.Copy r2
Next sh
End Sub
ここにコピーする必要があるセルの固定位置があります。一部のシートでは位置が異なるため、次のように外部ファイルとシートへの参照を持つすべてのセルを見つける必要があります。
'D:\Data\[Data_1990-2019.xlsx]Set01'!D105
質問: 参照を含むすべてのセルを検索し、それらのセルだけを新しいファイルにコピーするにはどうすればよいですか?
答え1
以下のコードは記事からコピーしたものです
Excel ですべてのリンク (外部参照) を見つけて一覧表示するにはどうすればよいでしょうか?
For Each xSheet In Worksheets
Set xRg = xSheet.UsedRange.SpecialCells(xlCellTypeFormulas)
If xRg Is Nothing Then GoTo LblNext
For Each xCell In xRg
If InStr(1, xCell.Formula, "[") > 0 Then
...
End If
Next
LblNext:
上記のInStr
呼び出しは、必要に応じて調整できます。