2017-07-06 5 views
0

Bitte helfen Jungs !! In dem Codeabschnitt unten (der übrigens sehr gut funktioniert), bekomme ich .txt im eigentlichen Dateinamen und Blattnamen. Ich habe mir angeschaut, was ich herausbringen muss, um das Problem zu lösen, aber ich kann es nicht lösen. Ich bin ziemlich neu in VBA, also tue ich mein Bestes Bitte helfen ?!Entfernen von. Txt von meinem Dateinamen und Blatt Name

'Opens the folder to location to select txt file 
    fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt") 
    If fileToOpen <> False Then 
    Workbooks.OpenText fileName:=fileToOpen, _ 
    DataType:=xlDelimited, Tab:=True 
    End If 
'Creates the file name based on txt file name 
    fileName = Mid(fileToOpen, InStrRev(fileToOpen, "\") + 1) 
'Creates the sheet name based on the active txt file 
    sheetName = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) 

'Rename the original text file 
    ActiveWorkbook.SaveAs ("S:\MERIT OUTPUTS FOLDER\MSI Recruitment 
    Limited\" & "DNU_" & fileName & ".txt") 
+0

Was ist Ihr Problem/Fehler? Einen Laufzeitfehler erhalten? oder falsche Werte für 'fileName' oder' sheetName'? –

+0

Wenn Sie 'sheetName' zuweisen, sollten Sie nicht auf' fileName' verweisen, anstatt auf den Namen der aktiven Arbeitsmappe? Und entfernen Sie in der Zeile SaveAs die '&" .txt "'. – SJR

+0

Es gibt keinen Fehler, aber wenn der Prozess abgeschlossen ist, habe ich die Wörter .txt tatsächlich im Dateinamen, es erscheint auch im Blattnamen. So erscheint es beispielsweise als Test.txt.txt, da das Dateiformat .txt ist. Ich brauche es nur Test mit der .txt nur als Dateiformat zu lesen, keinen Namen zu machen. – Dyhouse

Antwort

1

Vielleicht könnten Sie einfach zu Ihrem Sheetnamen als Dateinamen verwenden, da Sie bereits die „.txt“ entfernen der Blattname.

'Opens the folder to location to select txt file 
    fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt") 
    If fileToOpen <> False Then 
    Workbooks.OpenText fileName:=fileToOpen, _ 
    DataType:=xlDelimited, Tab:=True 
    End If 

'Creates the sheet name based on the active txt file 
    sheetName = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) 

'Rename the original text file 
    ActiveWorkbook.SaveAs ("S:\MERIT OUTPUTS FOLDER\MSI Recruitment 
    Limited\" & "DNU_" & sheetName & ".txt") 
0

können Sie einen regulären Ausdruck verwenden und die Dateinamen ohne Erweiterung extrahieren und verwenden Sie es

public String extractFileName(String fullPathFile){ 
     try { 
      Pattern regex = Pattern.compile(EXTRACT_FILE_NAME_REGEX); 
      Matcher regexMatcher = regex.matcher(fullPathFile); 
      if (regexMatcher.find()){ 
       return regexMatcher.group(1); 
      } 
     } catch (PatternSyntaxException ex) { 
      LOG.info("extractFileName::pattern problem <"+fullPathFile+">",ex); 
     } 
     return fullPathFile; 
    } 
+0

Ja, aber das ist eine Excel-VBA-Frage. – SJR

+0

Was in aller Welt ist ein Regex? – Dyhouse

+0

ersetze EXTRACT_FILE_NAME_REGEX durch "([^ \\\\ /: *? \" <> | \ R \ n] + $) " – HJK

Verwandte Themen