Coller spécifiques de la gamme excel, outlook
Je suis en train de travailler sur un document excel que je veux automatiser, cependant, la plage de cellules ne sont pas collés dans Outlook.
Voici mon code:
Sub Mail_Selection_Range_Outlook_Body()
Dim rng As Range
Dim OutApp As Object
Dim OutMail As Object
Set rng = Nothing
On Error Resume Next
' Only send the visible cells in the selection.
Set rng = Selection.SpecialCells(xlCellTypeVisible)
Set rng = Sheets("Sheet1").RangeToHtml("D4:D12").SpecialCells(xlCellTypeVisible, xlTextValues)
On Error GoTo 0
If rng Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected. " & _
vbNewLine & "Please correct and try again.", vbOKOnly
Exit Sub
End If
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = ThisWorkbook.Sheets("Sheet2").Range("C1").Value
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.HTMLBody = RangeToHtml.rng
' In place of the following statement, you can use ".Display" to
' display the e-mail message.
.Display
End With
On Error GoTo 0
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Je n'obtiens pas d'erreur, c'est juste qu'il ne veut pas coller gamme dans outlook. Merci.
Cette
Comme @TimWilliams dit de supprimer
Je vous remercie pour votre réponse Tim et Enderland, j'ai enlevé le on Error Resume Next, comme vous l'avez dit et il me donne une erreur qui est l'Objet ne gère pas cette propriété ou cette méthode. Avez-vous de la contourner pour se débarrasser de la de cette erreur?
De sorte que la ligne de l'erreur vous?
Set rng = Sheets("Sheet1").RangeToHtml("D4:D12").SpecialCells(xlCellTypeVisible, xlTextValues)
semble incorrect. RangeToHtml
(en supposant que la fonction à partir de la MS site web) retourne une chaîne de caractères, donc vous ne pouvez pas appeler ensuite SpecialCells
sur cette chaîne. Se débarrasser de la On Error Resume Next
et vous verrez l'erreur.Comme @TimWilliams dit de supprimer
On Error Resume Next
moins d'avoir une très bonne raison de l'inclure.Je vous remercie pour votre réponse Tim et Enderland, j'ai enlevé le on Error Resume Next, comme vous l'avez dit et il me donne une erreur qui est l'Objet ne gère pas cette propriété ou cette méthode. Avez-vous de la contourner pour se débarrasser de la de cette erreur?
De sorte que la ligne de l'erreur vous?
OriginalL'auteur Gilbert Jacob | 2013-09-06
Vous devez vous connecter pour publier un commentaire.
Tout d'abord,
RangeToHTML
. Le script appelle ça comme un méthode, mais il ne l'est pas. Il est un populaire fonction par MVP Ron de Bruin. Par coïncidence, que les liens de points à la source exacte du script que vous avez posté, avant que ces quelques lignes a obtenu massacrés modifié.Avec Gamme.SpecialCells. Cette méthode fonctionne sur une plage et retourne uniquement les cellules qui correspondent aux critères indiqués. Dans votre cas, vous semblez être uniquement intéressé par la texte visible cellules. Surtout, il fonctionne sur un Gamme, pas sur le texte HTML.
Par souci d'exhaustivité, je vais poster une version de travail du script ci-dessous. Je serais certainement informer de l'ignorer et de revoir l'excellent origine par Ron la Bruin.
J'ai la réponse sous la direction de Ron l'Bruin poste, merci
Avez-vous été en mesure d'ajouter du texte dans le corps de l'e-mail en plus de celui qui a été collé par la macro?
Aussi, est-il un moyen pour elle de copier des images?
vous pouvez vous faire une idée de la façon d'ajouter du texte supplémentaire à l'email du corps en suivant Ron la Bruin post... Suis pas sûr de savoir comment ajouter une image à un mail d'ailleurs je vais maintenant utiliser java pour envoyer des e-mails
OriginalL'auteur Paul-Jan