Kopiere fra word til text-fil
Hej WORD og VBA eksperterOpgaven lyder i sin enkelthed på at dele af et word-dokument skal kopieres over i en txt-fil kaldet patient.txt. Den skal anvendes af en elektronisk patient journal der har specifikke krav til opbygning af txt-filen (jeg forsøger at sammenkæde et
velfungerende word dokument med journalprogrammet). Egentlig fungerer nedenstående godt nok - jeg har dog følgende problemer:
1) En teksfil har åbenbart en max-længde hvorfor ikke alt tekst medtages - kan det laves således at der automatisk skiftes linie efter et antal tegn - og at denne nye linie starter med: Tekst:
2) Den sidste kopierede gruppe er en tabel i word. Den kopierer desværre tabellen og ikke kun data hvorved den fremkommer en del der ikke kan anvendes i en txt-fil - kan det ændres?
3) Kan det lade sig gøre at fjerne tomme linier i tekst-filen patient.txt
Sub ExportData()
'Leo Heuser, 18-5-2004
Dim DummyRange As Range
Dim EndWord As String
Dim EndRange As Range
Dim StartWord As String
Dim StartRange As Range
Dim WantedRange As Range
StartWord = "efterbehandling"
EndWord = "efterkontrol"
Set DummyRange = ActiveDocument.Content
DummyRange.Find.Execute findtext:=StartWord, MatchCase:=False
DummyRange.Select
Selection.Move unit:=wdLine, Count:=1
Set StartRange = Selection.Range
Set DummyRange = ActiveDocument.Content
DummyRange.Find.Execute findtext:=EndWord, MatchCase:=False
Set EndRange = DummyRange
Set WantedRange = ActiveDocument.Range(Start:=StartRange.Start,
End:=EndRange.Start)
WantedRange.Copy
ChangeFileOpenDirectory "F:\Faelles\InDex\dokumenter\Epikriseskabelon\"
Documents.Open FileName:="Ganglion.dot"
ActiveDocument.Bookmarks("Medicin").Select
Selection.Paste
ThisDocument.Activate
StartWord = "efterkontrol"
EndWord = "epikrise"
Set DummyRange = ActiveDocument.Content
DummyRange.Find.Execute findtext:=StartWord, MatchCase:=False
DummyRange.Select
Selection.Move unit:=wdLine, Count:=1
Set StartRange = Selection.Range
Set DummyRange = ActiveDocument.Content
DummyRange.Find.Execute findtext:=EndWord, MatchCase:=False
Set EndRange = DummyRange
Set WantedRange = ActiveDocument.Range(Start:=StartRange.Start,
End:=EndRange.Start)
WantedRange.Copy
ChangeFileOpenDirectory "F:\Faelles\InDex\dokumenter\Epikriseskabelon\"
Documents.Open FileName:="Ganglion.dot"
ActiveDocument.Bookmarks("Efterkontrol").Select
Selection.Paste
ThisDocument.Activate
StartWord = "epikrise"
EndWord = "undersøgelser"
Set DummyRange = ActiveDocument.Content
DummyRange.Find.Execute findtext:=StartWord, MatchCase:=False
DummyRange.Select
Selection.Move unit:=wdLine, Count:=1
Set StartRange = Selection.Range
Set DummyRange = ActiveDocument.Content
DummyRange.Find.Execute findtext:=EndWord, MatchCase:=False
Set EndRange = DummyRange
Set WantedRange = ActiveDocument.Range(Start:=StartRange.Start,
End:=EndRange.Start)
WantedRange.Copy
ChangeFileOpenDirectory "F:\Faelles\InDex\dokumenter\Epikriseskabelon\"
Documents.Open FileName:="Ganglion.dot"
ActiveDocument.Bookmarks("Epikrise").Select
Selection.Paste
ThisDocument.Activate
StartWord = "undersøgelser"
EndWord = "overlæge"
Set DummyRange = ActiveDocument.Content
DummyRange.Find.Execute findtext:=StartWord, MatchCase:=False
DummyRange.Select
Selection.Move unit:=wdLine, Count:=1
Set StartRange = Selection.Range
Set DummyRange = ActiveDocument.Content
DummyRange.Find.Execute findtext:=EndWord, MatchCase:=False
Set EndRange = DummyRange
Set WantedRange = ActiveDocument.Range(Start:=StartRange.Start,
End:=EndRange.Start)
WantedRange.Copy
ChangeFileOpenDirectory "F:\Faelles\InDex\dokumenter\Epikriseskabelon\"
Documents.Open FileName:="Ganglion.dot"
ActiveDocument.Bookmarks("Undersøgelser").Select
Selection.Paste
ActiveDocument.SaveAs
FileName:="\\Server\faelles\InDex\Dokumenter\Epikriseskabelon\patient.txt",
FileFormat:=wdFormatText, _
LockComments:=False, Password:="", AddToRecentFiles:=True,
WritePassword _
:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False,
SaveAsAOCELetter:= _
False, Encoding:=1252, InsertLineBreaks:=False,
AllowSubstitutions:=False _
, LineEnding:=wdCRLF
End Sub
vh Steen