Excel VBA автоматически создавать проблемы с электронной почтой - PullRequest
0 голосов
/ 16 апреля 2019

Я хотел бы знать, что случилось с моими кодами ниже.Я пытаюсь автоматически генерировать электронные письма на основе списка электронных писем, и этот список можно изменить.Поэтому я должен использовать do, пока цикл (пока диапазон («A» и i) не будет пустым) автоматически генерировать электронную почту рис

Я новичок в VBA и просто пытаюсь учиться.

Sub own()
    Dim shName As String
    Dim cell As Range
    Dim i As Integer

    i = 10
    Do Until Range("A" & i).Value = ""
       shName = Range("A" & i).Value
        ThisWorkbook.Worksheets(shName).Copy

        Application.Dialogs(xlDialogSendMail).Show cell.Offset(0, 1).Value, cell.Offset(0, 2).Value

        i = i + 1
    Loop


End Sub

Сообщение об ошибке: неверный вызов процедуры или аргумент .. почему?Ожидаемый результат должен быть в состоянии отправить электронное письмо в соответствии со списком (который можно изменить и, следовательно, делать до тех пор, пока не будет использован цикл).

1 Ответ

0 голосов
/ 16 апреля 2019

В вашем коде есть хотя бы один объект 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
...