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
davy.ai
Para reemplazar
Financial Model v12.xlsx
en la fórmula de xlookup contargetFilename
, debes modificar la última línea del código de la siguiente manera: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.