¿Cómo revisar rápidamente que todos los vínculos de un rango de datos funcionen correctamente?

En mi pregunta anterior:

"¿Cómo cambiar los valores invertidos de una columna de forma instantánea?"

Adjunte la imagen y mencioné que el archivo tiene más de 1000 registros con vínculos, los cuales necesito revisar uno por uno para evaluar que todos funcionen correctamente, sin embargo, no dispongo de mucho tiempo, por ello solicito su valiosa ayuda para resolverlo de manera rápida con alguna función o rutina efectiva.

1 respuesta

Respuesta
1

Te paso la macro para copiar los valores de la hoja "filtro" a la hoja "resumen" con todo y vínculo.

Si el vínculo de la hoja origen es correcto, entonces el vínculo en la hoja "resumen" estará correcto.

Sub copiaceldas()
  Dim sh1 As Worksheet, sh2 As Worksheet
  Dim dic As Object
  Dim i As Long, j As Long
  Dim cad As String
  Dim a As Variant, b As Variant
  '
  Application.DisplayAlerts = False
  '
  Set sh1 = Sheets("RESUMEN")
  Set sh2 = Sheets("PARA FILTRO")
  Set dic = CreateObject("Scripting.Dictionary")
  '
  If sh1.AutoFilterMode Then sh1.AutoFilterMode = False
  If sh2.AutoFilterMode Then sh2.AutoFilterMode = False
  '
  a = sh2.Range("A1", sh2.Range("Y" & Rows.Count).End(3)).Value
  For i = 10 To UBound(a, 1)
    cad = a(i, 11) & "|" & a(i, 13) & "|" & a(i, 15) & "|" & a(i, 16) & "|" & a(i, 22)
    dic(cad) = i
  Next
  '
  b = sh1.Range("A1", sh1.Range("AA" & Rows.Count).End(3)).Value
  For i = 2 To UBound(b, 1)
    If b(i, 11) <> "" Then
      cad = b(i, 11) & "|" & b(i, 22) & "|" & b(i, 25) & "|" & b(i, 26) & "|" & b(i, 27)
      If dic.exists(cad) Then
        j = dic(cad)
        sh2.Range("O" & j).Copy sh1.Range("AU" & i)
      End If
    End If
  Next
End Sub

[No olvides valorar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas