Avatar billede jacob_lunding Nybegynder
18. januar 2013 - 15:51 Der er 1 kommentar

Åben *.doc(x) m.fl. filer og gem som text fil (for 15.000 + filer)

Hej
Jeg har brug for at konvertere rigtig mange filer til simple tekstfiler. Problemet er, at de stammer alle mulige steder fra, og formentlig er oprettet i mange forskellige programmer (de sidste 20 år). De har alle på et eller andet tidspunkt fået en *.doc endelse, men er altså ikke alle doc filer fra begyndelsen.

Jeg har forsøgt mig med en Makro, der henter stien på hver fil i en kolonne i et excelark, åbner den med word.application og gemmer i txt.

Det tager bare riiiiigtig lang tid - 10 sek pr fil  - sikkert fordi nogle af filerne konverteres først.

Findes der en smutvej? Et andet program, en anden metode?, der kan speede det lidt op, mon?

Anyone?
Avatar billede jacob_lunding Nybegynder
18. januar 2013 - 15:59 #1
Sub fromWrd()
Application.ScreenUpdating = False
Dim i As Long, h As Long, j As Long, l As Long
j = 1
k = 17547
Dim wrdApp As New Word.Application
Set wrdApp = CreateObject("Word.Application")
Dim wrdDoc As Word.Document
'Dim FSO As New Scripting.FileSystemObject
'Set FSO = CreateObject("Scripting.FileSystemObject")
Dim dok As String
Dim sti As String
Dim tæller As Integer
Dim Sagstype As String
Dim Filtype1 As String, Filtype2 As String, Filnr As String
Dim DATO As Date
wrdApp.AutomationSecurity = msoAutomationSecurityLow
Application.DisplayAlerts = True
wrdApp.Visible = false

For i = j To k

On Error Resume Next
Application.StatusBar = "dokument " & i & " af " & k
sti = Range("A" & i) & "\"
tæller = Range("B" & i)
Sagstype = Range("C" & i)
Filnr = Range("D" & i)
Filtype1 = Range("E" & i)
Filtype2 = ".txt"

If Dir("C:\Documents and Settings\Jacob\Dokumenter\Sagerne\" & j & "-" & k, vbDirectory) = "" Then
MkDir "C:\Documents and Settings\Jacob\Dokumenter\Sagerne\" & j & "-" & k
End If

If Dir("C:\Documents and Settings\Jacob\Dokumenter\Sagerne\" & j & "-" & k & "\" & Filnr, vbDirectory) = "" Then
MkDir "C:\Documents and Settings\Jacob\Dokumenter\Sagerne\" & j & "-" & k & "\" & Filnr
Else
End If

dok = sti & tæller & " - " & Sagstype & " - " & Filnr & Filtype1
'Range("F" & i) = FSO.getfile(dok).datelastmodified
Set wrdDoc = wrdApp.Documents.Open(Filename:=dok, AddToRecentFiles:=False)
wrdDoc.SaveAs2 Filename:="C:\Documents and Settings\Jacob\Dokumenter\Sagerne\" & j & "-" & k & "\" & Filnr & "\" _
& tæller & " - " & Sagstype & Filtype2, FileFormat:=wdFormatText, AddToRecentFiles:=False
wrdDoc.Close
Set wrdDoc = Nothing

dok = ""

Next i

Set wrdApp = Nothing
wrdApp.Quit

   
'ActiveWorkbook.Save
Application.ScreenUpdating = True
End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester