Saltar al contenido

Nombre de archivo sin nombre de extensión VBA

Solución:

Las respuestas dadas aquí ya pueden funcionar en situaciones limitadas, pero ciertamente no son la mejor manera de hacerlo. No reinventes la rueda. El objeto del sistema de archivos en la biblioteca de Microsoft Scripting Runtime ya tiene un método para hacer exactamente esto. Se llama GetBaseName. Maneja los puntos en el nombre del archivo tal cual.

Public Sub Test()

    Dim fso As New Scripting.FileSystemObject
    Debug.Print fso.GetBaseName(ActiveWorkbook.Name)

End Sub

Public Sub Test2()

    Dim fso As New Scripting.FileSystemObject
    Debug.Print fso.GetBaseName("MyFile.something.txt")

End Sub

Instrucciones para agregar una referencia a la biblioteca de secuencias de comandos

Simple pero funciona bien para mi

FileName = ActiveWorkbook.Name 
If InStr(FileName, ".") > 0 Then 
   FileName = Left(FileName, InStr(FileName, ".") - 1) 
End If

El uso de la función Split parece más elegante que InStr y Left, en mi opinión.

Private Sub CommandButton2_Click()


Dim ThisFileName As String
Dim BaseFileName As String

Dim FileNameArray() As String

ThisFileName = ThisWorkbook.Name
FileNameArray = Split(ThisFileName, ".")
BaseFileName = FileNameArray(0)

MsgBox "Base file name is " & BaseFileName

End Sub
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *