Gå til innhold

Anbefalte innlegg

Jeg har brukt dette scriptet og laget en macro som jeg bruker i outlook.

 

Outlook kan ikke lagre denne filen fori den er åpen et annet sted.

(c:\\user\xxxx\....\Temp\email_temp.mht)

 

Men scriptet feiler med dialogboks:
Run-time-error -2147352567 880020009)
Datatabellen er utenfor grensen

 

Med vanlgene end, debug, help

 

Velger jeg debug får jeg merket følgende linje gult.

MySelectedItem.SaveAs tmpFileName, 10

 

 

Noen som vet hva som feiler?
 

 

Fant følgende om lagring:

Årsak

 

 

Dette problemet kan oppstå hvis én av følgende betingelser er oppfylt:
  • Et dokument som har samme filnavn som du prøver å lagre dokumentet er åpnet av en annen bruker.

    Obs! Denne betingelsen kan være sant når du lagrer et dokument til et nettverk eller en delt mappe.
  • Det er en midlertidig eier-fil som har samme filnavn som du prøver å lagre dokumentet på samme sted.

    Obs! Hvis et dokument ikke er lukket på riktig måte, fjernes ikke eierfilen for dokumentet. Derfor forblir eierfilen på samme sted. Dette kan for eksempel skje hvis Word 2007 lukkes uventet. Når du prøver å lagre et dokument som har samme filnavn som eierfilen til samme plassering, får du feilmeldingen som er nevnt i delen "Symptomer".


 

Endret av Zafar Iqbal
Lenke til kommentar
Videoannonse
Annonse

Se nedenfor

 

Sub SaveAsPDFfile()

Dim MyOlNamespace As NameSpace

Dim MySelectedItem As MailItem

Dim Response As String

Dim FSO As Object, TmpFolder As Object

Dim tmpFileName As String

Dim wrdApp As Object

Dim wrdDoc As Object

Dim bStarted As Boolean

Dim dlgSaveAs As FileDialog

Dim fdfs As FileDialogFilters

Dim fdf As FileDialogFilter

Dim i As Integer

Dim WshShell As Object

Dim SpecialPath As String

Dim msgFileName As String

Dim strCurrentFile As String

Dim strName As String

Dim oRegEx As Object

Dim intPos As Long

Set MyOlNamespace = Application.GetNamespace("MAPI")

Set MySelectedItem = ActiveExplorer.Selection.Item(1)

Set FSO = CreateObject("Scripting.FileSystemObject")

tmpFileName = FSO.GetSpecialFolder(2)

strName = "email_temp.mht"

tmpFileName = tmpFileName & "\" & strName

MySelectedItem.SaveAs tmpFileName, 10

On Error Resume Next

Set wrdApp = GetObject(, "Word.Application")

If Err Then

Set wrdApp = CreateObject("Word.Application")

bStarted = True

End If

On Error GoTo 0

Set wrdDoc = wrdApp.Documents.Open(FileName:=tmpFileName, Visible:=False, Format:=7)

Set dlgSaveAs = wrdApp.FileDialog(msoFileDialogSaveAs)

Set fdfs = dlgSaveAs.Filters

i = 0

For Each fdf In fdfs

i = i + 1

If InStr(1, fdf.Extensions, "pdf", vbTextCompare) > 0 Then

Exit For

End If

Next fdf

dlgSaveAs.FilterIndex = i

Set WshShell = CreateObject("WScript.Shell")

SpecialPath = WshShell.SpecialFolders(16)

msgFileName = MySelectedItem.Subject

Set oRegEx = CreateObject("vbscript.regexp")

oRegEx.Global = True

oRegEx.Pattern = "[\/:*?""<>|]"

msgFileName = Trim(oRegEx.Replace(msgFileName, ""))

dlgSaveAs.InitialFileName = SpecialPath & "\" & msgFileName

If dlgSaveAs.Show = -1 Then

strCurrentFile = dlgSaveAs.SelectedItems(1)

If Right(strCurrentFile, 4) <> ".pdf" Then

Response = MsgBox("Sorry, only saving in the pdf-format is supported." & _

vbNewLine & vbNewLine & "Save as pdf instead?", vbInformation + vbOKCancel)

If Response = vbCancel Then

wrdDoc.Close 0

If bStarted Then wrdApp.Quit

Exit Sub

ElseIf Response = vbOK Then

intPos = InStrRev(strCurrentFile, ".")

If intPos > 0 Then

strCurrentFile = Left(strCurrentFile, intPos - 1)

End If

strCurrentFile = strCurrentFile & ".pdf"

End If

End If

wrdApp.ActiveDocument.ExportAsFixedFormat OutputFileName:= _

strCurrentFile, _

ExportFormat:=17, _

OpenAfterExport:=False, _

OptimizeFor:=0, _

Range:=0, _

From:=0, _

To:=0, _

Item:=0, _

IncludeDocProps:=True, _

KeepIRM:=True, _

CreateBookmarks:=0, _

DocStructureTags:=True, _

BitmapMissingFonts:=True, _

UseISO19005_1:=False

End If

Set dlgSaveAs = Nothing

wrdDoc.Close

If bStarted Then wrdApp.Quit

Set MyOlNamespace = Nothing

Set MySelectedItem = Nothing

Set wrdDoc = Nothing

Set wrdApp = Nothing

Set oRegEx = Nothing

End Sub

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...