2017-04-11 1 views
0

Gibt es eine Möglichkeit, eine VBA dass verwenden, können wir ein Fenster wählen Sie eine Datei ausführen und wenn wir es Sie auf den Namen ohne Erweiterung (.txt) erhalten kopiert sollte und auf das Blatt bekommen kopiert " TEXT ", Zelle AZ2.Erhalten Sie Dateinamen in einer perticular Zelle

ich mit einigem Code gestartet, aber es funktioniert nicht. Ich bin mir nicht sicher, wie ich weiter machen soll.

Sub Main_Macro() 
Dim fName As String, LastRowim As Long 

fName = Application.GetOpenFilename("Text Files (*.txt), *.adt") 
If fName = "False" Then Exit Sub 

End Sub 

Antwort

0

versuchen GetBaseName() -Methode, um den Namen der Datei ohne Erweiterung zu erhalten.

+0

Danke, aber eigentlich bin ich sehr neue Codierung VBA. Es wäre sehr hilfreich für mich, wenn Sie mir zeigen könnten, wie Sie es im Code implementieren. – Sanoj

+0

Können Sie das gleiche in einem Code kurz machen? Ich brauche den Dateinamen, um in Zelle AZ2 von Blatt "TEXT" widerzuspiegeln. – Sanoj

0

Wie wäre es etwa so:

Sub foo() 
    Dim fd As FileDialog 
    Dim fName As String ' Includes full path 
    Dim fChosen As Integer 
    Dim fNameFile As String 'Only the name of the file 

    Set fd = Application.FileDialog(msoFileDialogFilePicker) 'open dialog box 
      fd.Title = "Please select file" 'dialog Title 
      fd.InitialFileName = "C:\Users\" 'Path to initiate Dialog box 
      'fd.InitialFileName = ThisWorkbook.Path & "\" 'alternate initial path 
      fChosen = fd.Show 
        fd.Filters.Clear 
        'fd.Filters.Add "CSV files", "*.csv" 'add filters to only show this type of file 
        fd.Filters.Add "Text files", "*.txt" 'in this case only txt files will be selectable 

     If fChosen <> -1 Then 
      MsgBox "You Cancelled, nothing done!", vbInformation 
     Else 
      fName = Right$(fd.SelectedItems(1), Len(fd.SelectedItems(1)) - InStrRev(fd.SelectedItems(1), "\")) 'get full path of file, then remove anything prior to \ to get filename 
      Position = InStr(fName, ".") 'get the position of the extension 
      If Position > 0 Then Extension = Right(fName, Len(fName) - Position + 1) 'get the actual extension of the file 
      fName = Replace(fName, Extension, "") 'remove that extenstion 
      Sheets("TEXT").Range("AZ2").Value = fName 'enter the file name to your chosen range 
     End If 
End Sub 
Verwandte Themen