Estoy tratando de buscar una cadena dentro de una carpeta que contiene varios archivos. Una vez que se encuentra la cadena, debe seleccionar y copiar un valor en una celda adyacente 5 columnas a la derecha (Offset(0,5))
, luego pégalo en mi cuaderno. Si se encuentran más cadenas, deben pegarse como un final de lista (xlDown).
Esa es la idea, pero no puedo hacer que funcione, el mensaje de error: " Subíndice fuera de rango ".
Sub searchBOM()
Dim BOM As String 'the text i'm gonna look for
Dim path As String 'the folder containing several files
Dim filename As String 'one of the files to search in
path = "D:\folder\"
filename = Dir(path)
BOM = InputBox("please enter bom code") 'where the user enters the string
If BOM = "" Then
MsgBox ("please input valid BOM code") 'not important really, just a small validation
Else
Do While filename <> "" 'so the DIR function scans all files
**'here I get the error message SUBSCRIPT OUT OF RANGE:**
Workbooks.Open(path & filename).Sheets("Sheet1").UsedRange.Find(BOM).Offset(0, 5).Copy
'the macro never gets to this line:
ThisWorkbook.Sheets("Sheet1").Range("c" & Range("c5").End(xlDown).Row).Paste
Workbooks.Open(path & filename).Close
filename = Dir
Loop
End If
End Sub