Cómo automatizar el script vb

Cómo automatizar el script vb

Tengo este código:

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

Aquí hay una posición fija para las celdas que debo copiar. En algunas hojas, la posición es diferente, por lo que debo encontrar todas las celdas que tengan referencias a un archivo y hoja externos como: 'D:\Data\[Data_1990-2019.xlsx]Set01'!D105

Pregunta: ¿Cómo encontrar todas las celdas que contienen referencias y copiar solo estas celdas en un archivo nuevo?

Respuesta1

El siguiente código está copiado del artículo.
¿Cómo encontrar y enumerar todos los enlaces (referencias externas) en 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:

Puede adaptar la InStrconvocatoria anterior para que se ajuste a sus necesidades.

información relacionada