es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Usa VBA para encontrar el número de fila basado en el nombre del archivo.

Me gustaría escribir un código que permita a VBA encontrar el nombre del archivo abierto actualmente y luego buscar en la hoja de Excel la celda que tenga exactamente el mismo valor.
Dado que el tipo de archivo es de tipo .dgn, intento usar el FileSystemObject. Pero estoy atascado en cómo escribirlo para leer el nombre del archivo actualmente abierto.

Después de encontrar la celda coincidente, me gustaría obtener el número de fila de esa celda.

Saludos,

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para encontrar el nombre del archivo abierto actualmente en VBA, puedes usar el siguiente código:

    Dim currentWorkbook As Workbook
    Set currentWorkbook = ActiveWorkbook
    Dim currentFilename As String
    currentFilename = currentWorkbook.FullName
    

    Este código establece la variable currentWorkbook en el libro de trabajo que está activo y lo abre. Luego, establece la variable currentFilenameen el nombre completo del libro de trabajo activo, que incluye la ruta de archivo y la extensión del archivo.

    Para buscar la hoja de cálculo de Excel y encontrar la celda que tiene exactamente el mismo valor que una variable, puedes usar el siguiente código:

    Dim lookupValue As String
    lookupValue = "valor de ejemplo" 'reemplaza con tu propio valor de búsqueda
    Dim matchCell As Range
    Set matchCell = ActiveSheet.Cells.Find(What:=lookupValue, LookAt:=xlWhole)
    

    Este código establece la variable lookupValue en el valor que deseas buscar, luego utiliza el método Find para buscarlo en la hoja activa. El parámetro LookAt se establece en xlWhole para asegurarse de que el método encuentre una coincidencia exacta.

    Para obtener el número de fila de la celda coincidente, puedes usar el siguiente código:

    Dim matchRow As Long
    If Not matchCell Is Nothing Then
        matchRow = matchCell.Row
    End If
    

    Este código verifica que la variable matchCell no esté vacía, y luego establece la variable matchRow en el número de fila de la celda coincidente, utilizando la propiedad Row del objeto Range.

    En general, el código para encontrar el nombre del archivo abierto actualmente y buscar un valor en una hoja de cálculo de Excel se vería así:

    Dim currentWorkbook As Workbook
    Set currentWorkbook = ActiveWorkbook
    Dim currentFilename As String
    currentFilename = currentWorkbook.FullName
    
    Dim lookupValue As String
    lookupValue = "valor de ejemplo"
    
    Dim matchCell As Range
    Set matchCell = ActiveSheet.Cells.Find(What:=lookupValue, LookAt:=xlWhole)
    
    Dim matchRow As Long
    If Not matchCell Is Nothing Then
        matchRow = matchCell.Row
    End If
    
    

Comments are closed.