【问题标题】:excel vba auto-generate email problemsexcel vba自动生成邮件问题
【发布时间】:2019-04-16 06:06:54
【问题描述】:

我想知道我的以下代码发生了什么。 我正在尝试根据电子邮件列表自动生成电子邮件,并且可以更改列表。因此,我必须使用 do until 循环(直到 range ("A" & i) 为空) auto generate email pic

我是 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

错误信息是无效的过程调用或参数.. 为什么? 预期的结果应该能够根据列表发送电子邮件(可以更改,因此直到使用循环)。

【问题讨论】:

    标签: excel vba do-while


    【解决方案1】:

    您的代码中至少有一个对象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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 2015-04-19
      • 1970-01-01
      • 2020-09-08
      相关资源
      最近更新 更多