2010-08-30 9 views
0

J'ai ce script que je voudrais enregistrer en plus en tant que fichier xls, également enregistrer en tant que .txt dans le même répertoire, ou même un différent. Puis-je obtenir des conseils ici?Excel Enregistrement au fichier TXT

Imports System.IO 

Module Module1 

Private Property fs As Object 
Private Property BaseName As Object 
Private Property FullTargetPath As Object 

Sub Main() 

    Dim targetfolder As String = "C:\TEST" 
    Dim sourcefolder As String = "\\10.97.8.16\c$\Checks\XMLFiles" 
    Dim Searchpattern As String = String.Format("{0:MM-dd-yyyy}*.xml", Date.Today) 
    Dim todaysfiles() As String = Directory.GetFiles(sourcefolder, Searchpattern) 
    Dim xlApp, xlWkb 
    xlApp = CreateObject("excel.application") 
    fs = CreateObject("Scripting.FileSystemObject") 
    Const xlnormal = 1 

    'Extra Dims 


    'Hide Excel 
    xlApp.Visible = False 

    For Each file As String In todaysfiles 
     ' Excel stuff... ' 

     Dim fileName As String = IO.Path.GetFileNameWithoutExtension(file) 

     ' Concatenate full path. Extension will be automatically added by Excel. ' 
     Dim fullTargetPath = IO.Path.Combine(targetfolder, fileName) 

     'Process each file in SourceFolder 
     ' For Each file In fs.GetFolder(SourceFolder).files 
     'Open file in SourceFolder 
     xlWkb = xlApp.Workbooks.Open(file) 
     'Get Filename 
     BaseName = fs.getbasename(file) 
     'Concatenate full path. Extension will be automatically added by Excel 
     fullTargetPath = targetfolder & "\" & BaseName 
     'Save as XLS file into TargetFolder 
     xlWkb.SaveAs(fullTargetPath, xlnormal) 

     'Close the file after its done 
     xlWkb.close() 
    Next 

    xlWkb = Nothing 
    xlApp = Nothing 
    fs = Nothing 

    ' MsgBox("Thank you. Currently the Date is: " & Date.Today & " people like to eat chicken Every " & Date.Today.Ticks & " minutes.") 


    'This is for extra code below 

End Sub 

End Module

Répondre

0

à peu près exactement comme vous le faites maintenant, mais changer le format de xlNormal à xltext.

xlWkb.SaveAs(fullTargetPath, xltext) 

Lors de la recherche de quelque chose comme ça, je regarde autour de l'explorateur d'objets sous éditeur vba. Recherchez dans ce cas l'objet Workbook, puis le sous-élément SaveAs pour obtenir la définition (paramètres et types), puis cliquez sur le paramètre pour lequel vous souhaitez obtenir plus d'informations et recherchez-le dans le menu d'aide. Je dis que de mémoire je n'ai pas joué avec des macros d'Excel depuis des années. Bonne chance!

+0

Hi Hugo, changeant cela avec le Const xltext = 1, l'a quand même changé en un fichier xls, pas un fichier txt. – GabrielVa

+0

xlText doens't égal à 1 ... ici laissez-moi voir. xlText est une constante vba globale comme xlnormal. xlText est égal à -4158 et xlNormal est égal à -4143, utilisez les nombres magiques si vous insistez. – Hugo

+0

Hmmm, intresting assez je l'ai mis à Const xltext = 1 et il a fait le convertir en xls. Je l'ai changé à -4158 et il le convertit en un fichier texte, mais il me demande maintenant de le sauvegarder à chaque fois comme où avant il n'a pas. Je l'ai mis à xlweb.close(). – GabrielVa

0

Pourquoi ne pouvez-vous appeler

xlWb.SaveAs(fullTargetPath, XlFileFormat.xlTextWindows) 

ou avec tout autre type de xlFileFormat?

Questions connexes