В вашем коде есть хотя бы один объект cell
, который должен быть Set
.
У вас есть лист с названием электронного письма, которое вы пытаетесь отправить? Потому что именно это пытается сделать ваш код.
Я изменил ваш код с Do... Loop
до For... Next
. Слишком легко застрять в бесконечной петле, не зная, что не так.
Будет ли этот код работать, зависит от ваших входных переменных.
Sub own()
Dim shName As String
Dim cell As Range
Dim ws As Worksheet
Dim i As Integer
Set cell = ActiveCell 'or whatever refrence needed
For i = 1 To 10
If Not (Range("A" & i).Value = "") Then
shName = Range("A" & i).Value
'Is there a worksheet that corresponds to the email name?
ThisWorkbook.Worksheets(shName).Copy
Application.Dialogs(xlDialogSendMail).Show _
cell.Offset(0, 1).Value, cell.Offset(0, 2).Value
End If
Next i
End Sub