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.

Buscarv en una tabla de otra tabla en otro libro de trabajo.

Tengo dos tablas: la tabla “CNSTimeVariance” en un libro de trabajo y la tabla “WorseCase” en un archivo llamado “Financial Model v12.xlsx”, que encuentro y abro como el archivo más reciente en un directorio. La variable asociada a este archivo es “targetFilename”. El problema es que el nombre de este archivo cambiará de vez en cuando y quiero que sea dinámico. ¿Cómo puedo reemplazar “Financial Model v12.xlsx” en la fórmula de xlookup que se encuentra en la última línea del siguiente código por “targetFilename”?

~~~~vba
SUB Xlookup()

Sheets(“CNS Time Total”).Select

Dim CNSTimeVariance As ListObject
Set CNSTimeVariance = ActiveSheet.ListObjects(“CNSTimeVariance”)

Dim DWB As Workbook
Set DWB = ActiveWorkbook

Dim FileSys As FileSystemObject
Dim objFile As File
Dim myFolder
Dim targetFilename As String
Dim dteFile As Date

Const myDir As String = “C:\My Desktop Folders\Edge\7. Financial Models\”

Set FileSys = New FileSystemObject
Set myFolder = FileSys.GetFolder(myDir)

dteFile = DateSerial(1900, 1, 1)
For Each objFile In myFolder.Files
If objFile.DateLastModified > dteFile Then
dteFile = objFile.DateLastModified
targetFilename = objFile.Name
End If
Next objFile

MsgBox targetFilename

Workbooks.Open (myDir & targetFilename)

‘Set FileSys = Nothing
‘Set myFolder = Nothing

DWB.Activate

Range(“CNSTimeVariance[P Hours]”).FormulaR1C1 = _
“=XLOOKUP(CNSTimeVariance[@Helper],'” & targetFilename & “‘!WorseCase[Helper],'” & targetFilename & “‘!WorseCase[P Hours],””Not Found””)”

End Sub

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para reemplazar Financial Model v12.xlsx en la fórmula de xlookup con targetFilename, debes modificar la última línea del código de la siguiente manera:

    Range("CNSTimeVariance[P Hours]").FormulaR1C1 = _
    "=XLOOKUP(CNSTimeVariance[@Helper],'[" & targetFilename & "]WorseCase[Helper]','[" & targetFilename & "]WorseCase[P Hours]','Not Found')"
    

    Esta modificación concatena la variable targetFilename con el nombre del archivo y de la hoja en la fórmula de xlookup. Esto haría que la fórmula sea dinámica y se ajuste al nombre del archivo encontrado en el directorio.

Comments are closed.