Sobota, 01 września 2018
  0 Odpowiedzi
  2.6 tys. Wizyt
0
Głosów
odpiąć
Zainstalowałem kutools, aby pomóc w projekcie do pracy. Zarządzam także raportem dużej firmy, który zawiera makro tworzące wiadomość e-mail na podstawie wprowadzonych informacji. To makro przestało działać na moim komputerze. Działa na komputerach, które nie mają kutools. Czy ktoś już spotkał się z czymś takim? Oto makro, które działa dobrze na innych komputerach:

Sub Mail_Sheet_Outlook_Body()
„Praca w Excelu 2000-2016
Application.ReferenceStyle = xlA1
Dim rng jako zakres
Wygaś aplikację jako obiekt
Wygaś pocztę jako obiekt
Dim xFolder jako ciąg
Dim xSht jako arkusz
Dim xSub jako ciąg
Przyciemniona odpowiedź jako ciąg
Przyciemnij wiadomość jako ciąg
Przyciemnij styl jako ciąg
Przyciemnij tytuł jako ciąg

Ustaw xSht = Aktywny arkusz
Msg = "Czy na pewno chcesz wysłać ten formularz e-mailem?" 'Zdefiniuj wiadomość.
Styl = vbYesNo + vbCritical + vbDefaultButton2 ' Zdefiniuj przyciski.
Tytuł = "Potwierdzenie wysłania e-maila" ' Zdefiniuj tytuł.
Odpowiedź = MsgBox(Wiadomość, Styl)

Jeśli odpowiedź = vbTak Wtedy
xFolder = Environ("USERPROFILE") + "\Desktop\ + "\Field Audit Form--" + CStr(xSht.Cells(19, "A").Value) + "--.pdf"
'xSub = "Audyt pola dla sklepu " + CStr(xSht.Cells(19, "A").Value)
Z aplikacją
.EnableEvents = Fałsz
.ScreenUpdating = Fałsz
Kończyć z

Ustaw rng = Nic
Ustaw rng = ActiveSheet.UsedRange
'Możesz także użyć nazwy arkusza
'Set rng = Sheets("Twój arkusz").UsedRange

Set OutApp = CreateObject("Outlook.Application")
Ustaw OutMail = OutApp.CreateItem(0)
Dim varCellvalue Tak Długie




On Error Resume Next
Z OutMail
.Do = ""
.CC = „”
.BCC = „”
.Subject = „Podsumowanie”
.Załączniki.Dodaj xFolder
.HTMLBody = Zakres doHTML(rng)
.Display 'lub użyj .Display

Kończyć z
Przy błędzie GoTo 0

Z aplikacją
.EnableEvents = True
.ScreenUpdating = True
Kończyć z

Set OutMail = Nic
Set OutApp = Nic
End If
End Sub


Zakres funkcji do HTML (rng jako zakres)
'Praca w Office 2000-2016
Dim fso jako obiekt
Wymiary jako obiekt
Dim TempFile jako ciąg
Dim TempWB jako skoroszyt

TempFile = Environ$("temp") & "\ & Format(Teraz "dd-mm-rr h-mm-ss") & ".htm"

Skopiuj zakres i utwórz nowy skoroszyt, w którym będziesz mógł wkleić dane
rng.Kopiuj
Ustaw TempWB = Skoroszyty.Dodaj(1)
Z arkuszami TempWB(1)
.Cells(1).PasteSpecial Wklej:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Komórki(1).Wybierz
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.Obiekty rysunkowe.Usuń
Przy błędzie GoTo 0
Kończyć z

'Opublikuj arkusz w pliku htm
Z TempWB.PublishObjects.Add( _
Typ źródła:=xlZakres źródła, _
Nazwa pliku:=Plik tymczasowy, _
Arkusz:=TempWB.Sheets(1).Nazwa, _
Źródło:=TempWB.Sheets(1).UsedRange.Address, _
Typ HTML:=xlHtmlStatyczny)
.Opublikuj (prawda)
Kończyć z

'Odczytaj wszystkie dane z pliku htm do RangetoHTML
Ustaw fso = CreateObject ("Scripting.FileSystemObject")
Ustaw ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.odczyt
ts.Zamknij
RangetoHTML = Zamień(RangetoHTML, "align=center x:publishsource=", _
„align=lewy x:publishsource=")

„Zamknij TempWB
TempWB.Zamknij zapisz zmiany:=Fałsz

'Usuń plik htm, którego użyliśmy w tej funkcji
Zabij TempFile
Ustaw ts = Nic
Ustaw fso = Nic
Ustaw TempWB = Nic

End Function
Nie ma jeszcze odpowiedzi na ten post.