![]() |
![]() |
|
![]() |
![]() |
|
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 |
![]() |
![]() |
![]() |
#2 |
-------------
![]() |
![]() argl, wenn man weiß wie, wird es wohl sehr einfach sein ...
ein guter Freund zeigte mir per Mail einen Lösungsansatz (mitdenken war aber dafür notwendig ![]() was zu diesem Code führte Code:
.Destination = wdSendToNewDocument For i = 1 To Anzahl .DataSource.ActiveRecord = i ds_name = .DataSource.DataFields(Schluessel) cleanname = Replace(ds_name, "\", "") cleanname = Replace(cleanname, "/", "") cleanname = Replace(cleanname, """", "") cleanname = Replace(cleanname, "*", "") cleanname = Replace(cleanname, "?", "") cleanname = Replace(cleanname, "<", "") cleanname = Replace(cleanname, ">", "") cleanname = Replace(cleanname, "|", "") dsname = Verzeichnis & "\" & cleanname & ".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 thx nochmals auch auf diesem Weg
____________________________________
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) | |
|
|