![]() |
|
#1
|
|||
|
|||
![]()
Run-time Error (5487)
word cannot complete the save due to a file permission error Code:
Dim str1 As String, str2 As String With ActiveDocument .Select With Selection .Find.ClearFormatting .Find.Execute FindText:="The Principal", MatchWholeWord:=True .HomeKey .MoveDown .EndKey Unit:=wdLine .MoveLeft Unit:=wdCharacter, Count:=1 .HomeKey Unit:=wdLine, Extend:=wdExtend str1 = Trim(Selection.Range.Text) End With .Select With Selection .Find.Execute FindText:="RE: ", MatchWholeWord:=True .MoveRight Unit:=wdCharacter, Count:=1 .EndKey Unit:=wdLine, Extend:=wdExtend str2 = Trim(Selection.Range.Text) End With .SaveAs2 FileName:=ThisDocument.Path & "\" & str1 & " " & str2, FileFormat:=wdFormatDocumentDefault End With I don't know why str2 causes the problem to saving the document. 14 April 2012.docx Many thanks in advance. |
#2
|
||||
|
||||
![]()
Hi tinfanide,
Try something along the lines of: Code:
Dim Rng As Range, Str1 As String, Str2 As String With ThisDocument With .Content With .Find .ClearFormatting .MatchWildcards = True .Text = "The Principal^13[!13]@^13" .Execute End With If .Find.Found Then Set Rng = .Duplicate.Paragraphs.Last With Rng .End = .End - 1 Str1 = Trim(.Text) End With End If With .Find .Text = "RE: [!13]@^13" .Execute End With If .Find.Found Then Set Rng = .Duplicate.Paragraphs.Last With Rng .End = .End - 1 .Start = .Start + 4 Str2 = Trim(.Text) End With End With .SaveAs2 FileName:=.Path & "\" & Str1 & " " & Str2, FileFormat:=wdFormatDocumentDefault End With
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
![]()
Paul, thanks for your codes.
I've amended them a bit according to the errors reported. Code:
Dim Rng As Range, Str1 As String, Str2 As String With ThisDocument With .Content With .Find .ClearFormatting .MatchWildcards = True .Text = "The Principal" .Execute End With If .Find.Found Then Set Rng = .Duplicate.Paragraphs.Last.Range With Rng .End = .End - 2 Str1 = Trim(.Text) End With End If With .Find .Text = "R" .Execute End With If .Find.Found Then Set Rng = .Duplicate.Paragraphs.Last.Range With Rng .End = .End - 1 .Start = .Start + 4 Str2 = Trim(.Text) End With End If End With .SaveAs2 FileName:=.Path & "\" & Str1 & " " & Str2, FileFormat:=wdFormatDocumentDefault End With Either string can be found, not both. When I move Str2 in front of Str1, Str1 cannot be found and vice versa. Could ya tell me why? |
#4
|
||||
|
||||
![]()
Is there a reason you changed the Find strings? Your's won't do the same as mine.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#5
|
|||
|
|||
![]() Quote:
Code:
Sub test() Dim Rng As Range, Str1 As String, Str2 As String With ThisDocument With .Content With .Find .ClearFormatting .MatchWildcards = True .Text = "The Principal^13[!13]@^13" ''' the wildcards return .Find.Found = false .Execute End With If .Find.Found Then Set Rng = .Duplicate.Paragraphs.Last '''.Range With Rng .End = .End - 1 ''' should be -2 (-1 the comma still exists) Str1 = Trim(.Text) End With End If With .Find .Text = "RE: [!13]@^13" ''' the wildcards return .Find.Found = false .Execute End With If .Find.Found Then Set Rng = .Duplicate.Paragraphs.Last '''.Range With Rng .End = .End - 1 .Start = .Start + 4 Str2 = Trim(.Text) End With ''' End If ''' missed in the original codes End If End With .SaveAs2 FileName:=.Path & "\" & Str1 & " " & Str2, FileFormat:=wdFormatDocumentDefault End With End Sub |
#6
|
||||
|
||||
![]()
Hi tinfanide,
Try this version: Code:
Sub Test() Dim Rng As Range, Str1 As String, Str2 As String With ThisDocument With .Content With .Find .ClearFormatting .MatchWildcards = True .Text = "The Principal" .Execute End With If .Find.Found Then Set Rng = .Duplicate.Paragraphs.Last.Next.Range With Rng While Not .Characters.Last Like "[a-z]" .End = .End - 1 Wend Str1 = Trim(.Text) End With End If End With With .Content With .Find .ClearFormatting .MatchWildcards = True .Text = "RE: [!13]@^13" .Execute End With If .Find.Found Then Set Rng = .Duplicate With Rng While Not .Characters.Last Like "[a-z]" .End = .End - 1 Wend .Start = .Start + 4 Str2 = Trim(.Text) End With End If End With MsgBox .Path & "\" & Str1 & " " & Str2 '.SaveAs2 FileName:=ThisDocument.Path & "\" & Str1 & " " & Str2, FileFormat:=wdFormatDocumentDefault End With End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#7
|
|||
|
|||
![]() Quote:
Yes. Thanks for the codes. With a quite careful look at them, I notice ya've used two Code:
With .Content End With Meanwhile, I'm using Code:
.Find.Wrap = wdFindContinue Code:
Sub Macro1() Dim Str1 As String, Str2 As String Dim Rng As Range With ThisDocument With .Content With .Find .ClearFormatting .MatchWildcards = True .Execute FindText:="The Principal" End With If .Find.Found Then Set Rng = .Duplicate.Paragraphs.Last.Next.Range With Rng While Not .Characters.Last Like "[a-z]" .End = .End - 1 Wend Str2 = .Text End With End If With .Find .ClearFormatting .MatchWildcards = True .Wrap = wdFindContinue .Execute FindText:="RE: [!13]@^13" End With If .Find.Found Then Set Rng = .Duplicate With Rng While Not .Characters.Last Like "[a-z]" .End = .End - 1 Wend .Start = .Start + Len("RE: ") Str1 = .Text End With End If End With End With Debug.Print Str1 & " " & Str2 End Sub |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Word Visual Basic error - run time error 504 | crazymorton | Word | 11 | 01-13-2012 04:32 AM |
![]() |
bennypryde | Office | 1 | 01-05-2012 03:33 PM |
Ms Word Error | manesh | Word | 1 | 05-28-2010 07:26 AM |
Runtime error 5487 - Word cannot complete the save to to file permission error | franferns | Word | 0 | 11-25-2009 05:35 AM |
Receive error cannot open this form because an error occurred in BCM 2007 | bornhusker | Outlook | 0 | 06-01-2009 10:28 AM |