Я пытаюсь отправить электронное письмо, содержащее книгу Excel из документа, используя встроенные макросы VB. В одном из листов есть данные, которые имеют отношение к отправке электронной почты (тема, получатель и т. Д.). Я пытаюсь получить доступ к ним с помощью Sheets объекта как такПроблема с чтением данных из определенных ячеек в Excel VBA
Sub Button1_Click()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
Dim cell As Object
Dim count As Integer
count = 0
For Each cell In Selection
count = count + 1
Next cell
If count <> 1 Then
MsgBox ("You must select exactly one cell, which shall be the e-mail address of the recipient")
Wscript.Quit
Else
recipient = ActiveCell.Value
End If
On Error Resume Next
With OutMail
.To = recipient
.CC = ""
.BCC = ""
.SentOnBehalfOfName = This.Sheets("MailContent").Range("A2").Value
.Subject = This.Sheets("MailContent").Range("A4").Value
.Body = This.Sheets("MailContent").Range("A6").Value & vbNewLine & This.Sheets("MailContent").Range("A7") & vbNewLine & vbNewLine & "Næste gang senest den " + This.Sheets("MailContent").Range("A10") & vbNewLine & vbNewLine & This.Sheets("MailContent").Range("A8")
.Attachments.Add ActiveWorkbook.Name
.Display
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Я также был в состоянии повторить ту же ошибку с этой небольшой фрагмент кода
Sub Button1_Click()
Dim subjectCell As Range
subjectCell = This.Sheets("MailContent").Range("A2")
MsgBox (subjectCell.Value)
End Sub
Я попытался с помощью листов, листы, ActiveWorkbook для доступа к ячейкам, но я уверен, что это просто проблема того, как я назначаю данные, поскольку я не привык к языкам с синтаксисом типа VB. Любая помощь очень ценится, и если вам нужна дополнительная информация, оставьте мне комментарий.
Я полагаю, что это также должно быть 'ThisWorkbook', а не' This' всюду в коде. – BrakNicku
Я предполагал, что «Это» было переменной рабочей книги. Тем не менее, замена этой книги также будет работать. –
@ user3964075 Лучше всего будет 'Dim ThisWb as Workbook', за которым следует' Set ThisWb = Thisworkbook', а затем используйте 'ThisWB', где бы вы ни использовали' this'. IMHO – FreeMan