![]() |
![]() |
|
|
|||||||
| Programmierung Rat & Tat für Programmierer |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
|
|
#1 |
|
-------------
![]() |
habe hier ein kl. Problem, dass in mir eine Gedankenblockade verursacht
In verschiedenen Worddokumenten wird folgendes Skript verwendet um das Dokument von der Datenquelle zu lösen und mit einen bestimmten Namen aus einen Formularfeld (LBSName) zu speichern Code:
Private Const Verzeichnis = "C:\Dokumente\Kontrollberichte"
Private Const Schluessel = "LBSName"
Sub JederDatensatzInEineEigenstandigeDatei_2()
With ActiveDocument.MailMerge
If .MainDocumentType = wdNotAMergeDocument Then
MsgBox "Das aktive Dokument ist kein Seriendruckhauptdokument."
Exit Sub
End If
.DataSource.ActiveRecord = wdLastRecord
Anzahl = .DataSource.ActiveRecord
If Anzahl = 0 Then
MsgBox "Es wurden keine Datensätze gefunden."
Exit Sub
End If
flag = False
For Each x In .DataSource.DataFields
If x.Name = Schluessel Then
flag = True
Exit For
End If
Next
If flag = False Then
Q = Chr(34)
MsgBox "Das nominierte Feld " & Q & Schluessel & Q & _
" existiert nicht in der Datenquelle."
Exit Sub
End If
.Destination = wdSendToNewDocument
For i = 1 To Anzahl
.DataSource.ActiveRecord = i
dsname = Verzeichnis & "\" & _
.DataSource.DataFields(Schluessel).Value & ".doc"
.DataSource.FirstRecord = i
.DataSource.LastRecord = i
.Execute
ActiveDocument.Range.Find.Execute FindText:="^b", ReplaceWith:=""
ActiveDocument.SaveAs FileName:=dsname, AddToRecentFiles:=False
ActiveDocument.Close
Next i
.DataSource.FirstRecord = 1 'be smart
End With
End Sub
Ich würde gerne vor dem Speichern den Dateiname nach diesem Sonderzeichen durchsuchen lassen und diese durch nix ersetzen lassen. Dachte mir dass dies ähnlich wie diese Zeile sein müsste Code:
ActiveDocument.Range.Find.Execute FindText:="^b", ReplaceWith:="" imho, nur das Problem ist, mit Programmierung kenn ich mich leider überhaupt nicht aus, sollte es möglich sein, dieses Suchen und Ersetzen in dieses Codeschnippsel einzusetzen Code:
.Destination = wdSendToNewDocument
For i = 1 To Anzahl
.DataSource.ActiveRecord = i
dsname = Verzeichnis & "\" & _
.DataSource.DataFields(Schluessel).Value & ".doc"
.DataSource.FirstRecord = i
.DataSource.LastRecord = i
.Execute
Zu Fragen, warum hast du das so und so gemacht, ähmm hab ich nicht gemacht, hat mein Vorgänger irgendwo im Internet gefunden und nur Pfad und Formularfeldvorlage geändert Somit tu ich mir schwer zu sagen, warum dies oder jenes so und so gemacht wurde. Hoffe trotzdem, dass mir wer helfen kann
____________________________________
EnJoy * Kl. Anleitung, welche Infos bei Problemen benötigt werden * was ich nicht weiß, weiß Google bzw. vorm Posten Listen to Bart * BITTE, füttert keine Trolle, siehe auch Definition bzw. Merkbefreiung - Verordnung * Wie man Fragen richtig stellt |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|