Как автоматизировать скрипт vb

Как автоматизировать скрипт vb

У меня есть такой код:

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призыв в соответствии со своими потребностями.

Связанный контент