Hola!
Tienes que combinar las funciones InStr y Left para ese caso concreto. Te paso una función que escribí para mi librería y que hace eso mismo:
Código:
Public Function LeftToString(ByVal wExpression As String, ByVal wFind As String, Optional ByVal wStart As Long = 1) As String
Dim i As Long
i = InStr(wStart, wExpression, wFind, vbTextCompare)
If i > 0 Then LeftToString = Left(wExpression, i - 1)
End Function
Te devuelve lo que haya en la cadena desde el principio hasta la subcadena que tú le digas, o nada, si la subcadena no existe. Por ejemplo:
Código:
LeftToString("hola.adeu", ".") = "hola"
LeftToString("hola.xiquet.adeu", ".") = "hola"
LeftToString("hola.txavalin.deu", "va") = "hola.txa"
LeftToString("hola.txavalin.deu", "miau") = ""