JohnRobinAllen
asked on
Problem saving the active document under a different name in Word with VBA
Running VBA in Word (2010) under Windows 7, I have a VBA program that tries to save the active document under a different name than its current name. The active document can be a *.doc file or a *.docx file. We set the Boolean OldFormat to True if it is in the Word97 *.doc format. Otherwise the document has been generated with Word 2007 or later.
Here is the code that is giving me problems:
If OldFormat Then
ActiveDocument.SaveAs2 FileName:=Path & TargetName, FileFormat:= _
wdFormatDocument, AddToRecentFiles:=True
Else
ActiveDocument.SaveAs2 FileName:=Path & TargetName, FileFormat:= _
wdFormatXMLDocumentMacroEn abled, AddToRecentFiles:=True
End If
With a *.doc file, OldFormat = TRUE, so if we step through the code above, control goes to the first of those two “ActiveDocument.SaveAs2” commands. This code works perfectly on my computer, but on another computer I get an error 438 message: “Object does not support this property or method” at that point. The Path appears to be correct, the TargetName is a valid filename, WdFormatDocument = 0.
What could be causing the 438 error?
jra
Here is the code that is giving me problems:
If OldFormat Then
ActiveDocument.SaveAs2 FileName:=Path & TargetName, FileFormat:= _
wdFormatDocument, AddToRecentFiles:=True
Else
ActiveDocument.SaveAs2 FileName:=Path & TargetName, FileFormat:= _
wdFormatXMLDocumentMacroEn
End If
With a *.doc file, OldFormat = TRUE, so if we step through the code above, control goes to the first of those two “ActiveDocument.SaveAs2” commands. This code works perfectly on my computer, but on another computer I get an error 438 message: “Object does not support this property or method” at that point. The Path appears to be correct, the TargetName is a valid filename, WdFormatDocument = 0.
What could be causing the 438 error?
jra
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I'll confirm that information after the other party is awake. I'm typing this at 7:30 a.m. in Priddis, Alberta (Mountain time) and he is in Seattle (Pacific Time, 6:30 a.m.), so it is too early to reach him now.
I had the same results with another friend in Winnipeg (Central Standard Time, 8:30 a.m.), but I cannot contact him until others here are awake too.
I strongly suspect that Graham Skan's solution will solve the problem and that the path is correct.
There is another problem that I may pose in a separate question: the person in Seattle is having trouble reading a variable stored in the document, but I will save the details for later (not with this query). His computer reads the variable but then it fails a test in an "If" statement. If I cannot find out what is wrong with that, I'll give full details in another query.
I had the same results with another friend in Winnipeg (Central Standard Time, 8:30 a.m.), but I cannot contact him until others here are awake too.
I strongly suspect that Graham Skan's solution will solve the problem and that the path is correct.
There is another problem that I may pose in a separate question: the person in Seattle is having trouble reading a variable stored in the document, but I will save the details for later (not with this query). His computer reads the variable but then it fails a test in an "If" statement. If I cannot find out what is wrong with that, I'll give full details in another query.
JRA,
SaveAs2 accepts an extra argument - CompatibilityMode. If you don't need to use it, you can stick to the old SaveAs method.
It sounds interesting, but I have a feeling that you will be able to solve your Seattle contact's problem yourself.
SaveAs2 accepts an extra argument - CompatibilityMode. If you don't need to use it, you can stick to the old SaveAs method.
It sounds interesting, but I have a feeling that you will be able to solve your Seattle contact's problem yourself.
ASKER
This is the solution. However G.S. supplies further useful information about the command in a message below.
Once again, many thanks to GS and to EE!
Appreciation also to CB. He could have found a cause of the problem but the problem lay elsewhere.
j.r.a.
Once again, many thanks to GS and to EE!
Appreciation also to CB. He could have found a cause of the problem but the problem lay elsewhere.
j.r.a.
Chris