У меня есть такой код:
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
призыв в соответствии со своими потребностями.