¡Saludos para todos!
Introducción.
En el trabajo, utilizamos una aplicación web de gestión de documentos electrónicos (podemos nombrarla por ejemplo como "webdocs") que nos permite buscar los documentos por su número específico.
Los "webdocs" tienen una opción para descargar un archivo de Excel para mostrar la lista de documentos externos/internos vencidos y próximos.
Ese archivo de Excel tiene la columna que consta de № carácter + número de documento + salto de línea + fecha de entrada.
Los webdoc.
Cuando busco un documento, la URL tiene el siguiente aspecto: https://webdocs.com/#!/cancelar/incoming/document_list_organization?page=1&document_recipient_reg_number=12345678&boss=-1&from_date=01.01.2022&to_date=12.31.2022&year=2022
Entonces, la URL consta de 3 bloques principales, el segundo es lo que estoy buscando:
El problema
Escribí el código VBA que agrega la columna adicional y pasa la URL en cada celda de la tabla de datos.
El punto principal es reemplazar el segundo bloque de URL con el valor de la columna "B", es por eso que he agregado una fórmula que ignora el carácter "№" y toma los valores hasta el salto de línea (carácter 10) .
Dim zRange, zCells As Range Set zRange = .Range("I3", .Range("I3").End(xlDown)).Offset(0, 5) .Range("N2").Value = "Find the document" For Each zCells In zRange .Hyperlinks.Add Anchor:=zCells, _ Address:="https://webdocs.com/#!/cancelar/incoming/document_list_organization?page=1&document_recipient_reg_number=" & zCells.Formula = "RIGHT(LEFT(" & "B" & zCells.Row & ",FIND(CHAR(10)," & "B" & zCells.Row & ")-1), LEN(LEFT(" & "B" & zCells.Row & ",FIND(CHAR(10)," & "B" & zCells.Row & ")-1))-2)" & "&boss=-1&from_date=01.01.2022&to_date=12.31.2022&year=2022", _ ScreenTip:="Open the document", _ TextToDisplay:="Open the document" Next zCellsEl código interpreta ".Fórmula" como texto y cuando abrí el hipervínculo, vi la fórmula en el segundo bloque de la URL pero no el valor de las celdas de la columna "B". El código no funciona como debería.
La pregunta
¿Cuál es la forma de solucionar el problema?
Insinuación:
Sub TestA() Const Address As String = "https://webdocs.com/#!/cancelar/incoming/document_list_organization?page=1&document_recipient_reg_number=12345678&boss=-1&from_date=01.01.2022&to_date=12.31.2022&year=2022" MsgBox "Reg #: " & Split(Split(Address, "=")(2), "&")(0) End SubIgualmente:
Sub TestB() Dim DocID As String DocID = Range("B" & zCells.Row).Text MsgBox "Reg #: " & Split(Split(DocID, "№")(1), Chr(10))(0) End Sub