Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 发送电子邮件标题中的单元格卷_Excel_Vba_Email_If Statement_Cycle - Fatal编程技术网

Excel 发送电子邮件标题中的单元格卷

Excel 发送电子邮件标题中的单元格卷,excel,vba,email,if-statement,cycle,Excel,Vba,Email,If Statement,Cycle,我需要一个脚本,审查数字从上到下的第三列,如果它看到0和数字之前,它是大于100,然后该数字的值是在电子邮件标题发送。 当前版本的编码将所有值发送到电子邮件(该条件不起作用)。 但是如果GoTo被Msgbox替换,脚本就可以完美地工作 For i = 2 To 100 Step 1 If cells(i, 3) = 0 And cells(i - 1, 3) < 100 Then Exit For If cells(i, 3) = 0 And cells(i - 1, 3) > 10

我需要一个脚本,审查数字从上到下的第三列,如果它看到0和数字之前,它是大于100,然后该数字的值是在电子邮件标题发送。 当前版本的编码将所有值发送到电子邮件(该条件不起作用)。 但是如果GoTo被Msgbox替换,脚本就可以完美地工作

For i = 2 To 100 Step 1
If cells(i, 3) = 0 And cells(i - 1, 3) < 100 Then Exit For
If cells(i, 3) = 0 And cells(i - 1, 3) > 100 Then GoTo email
If cells(i, 3) = 0 And cells(i - 1, 3) > 100 Then Exit For
Next i
email:
Dim olObj_1 As Outlook.Application
Dim mItem_1 As Outlook.MailItem
Set olObj_1 = New Outlook.Application
Set mItem_1 = olObj_1.CreateItem(olMailItem)
With mItem_1
    .To = "xxxx@xxxx.com"
    .Subject = "Figure_one " & cells(i - 1, 3)
    .Send
End With
End Sub
对于i=2到100步骤1
如果单元(i,3)=0且单元(i-1,3)<100,则退出
如果单元格(i,3)=0且单元格(i-1,3)>100,则转到电子邮件
如果单元(i,3)=0且单元(i-1,3)>100,则退出
接下来我
电邮:
Dim olObj_1作为Outlook.Application
将mItem_1设置为Outlook.MailItem
Set-olObj_1=新建Outlook.Application
设置mItem_1=olObj_1.CreateItem(olMailItem)
用mItem_1
.To=”xxxx@xxxx.com"
.Subject=“Figure_one”和单元格(i-1、3)
.发送
以
端接头
试试这个:

Option Explicit
Sub Mail()

    Dim i As Long        

    For i = 2 To 100
        If Cells(i, 3) = 0 And Cells(i - 1, 3) > 100 Then
            Dim olObj_1 As Outlook.Application
            Dim mItem_1 As Outlook.MailItem
            Set olObj_1 = New Outlook.Application
            Set mItem_1 = olObj_1.CreateItem(olMailItem)
            With mItem_1
                .To = "xxxx@xxxx.com"
                .Subject = "Figure_one " & Cells(i - 1, 3)
                .Send
            End With
            Exit For
        End If
    Next i

End Sub
我假设您只想发送一封电子邮件,否则您的代码将全部更改。

尝试以下操作:

Option Explicit
Sub Mail()

    Dim i As Long        

    For i = 2 To 100
        If Cells(i, 3) = 0 And Cells(i - 1, 3) > 100 Then
            Dim olObj_1 As Outlook.Application
            Dim mItem_1 As Outlook.MailItem
            Set olObj_1 = New Outlook.Application
            Set mItem_1 = olObj_1.CreateItem(olMailItem)
            With mItem_1
                .To = "xxxx@xxxx.com"
                .Subject = "Figure_one " & Cells(i - 1, 3)
                .Send
            End With
            Exit For
        End If
    Next i

End Sub

我假设您只想发送一封电子邮件,否则您的代码将全部更改。

我认为您可以尝试以下方法:

Option Explicit

Sub test()

    Dim olObj_1 As Outlook.Application
    Dim mItem_1 As Outlook.MailItem
    Dim str As String
    Dim i As Long

    With ThisWorkbook.Worksheets("Sheet1") ' Always select your worksheet name

        For i = 2 To 100

            If .Cells(i, 3).Value = 0 And .Cells(i - 1, 3).Value > 100 Then

                If str = "" Then
                    str = "Figure_one " & .Cells(i - 1, 3).Value
                Else
                    str = str & ", Figure_one " & .Cells(i - 1, 3).Value
                End If

            End With

        Next i

        Set olObj_1 = New Outlook.Application
        Set mItem_1 = olObj_1.CreateItem(olMailItem)

        With mItem_1
            .To = "xxxx@xxxx.com"
            .Subject = str
            .Send
        End With

    End With

End Sub

我想你可以试试这个:

Option Explicit

Sub test()

    Dim olObj_1 As Outlook.Application
    Dim mItem_1 As Outlook.MailItem
    Dim str As String
    Dim i As Long

    With ThisWorkbook.Worksheets("Sheet1") ' Always select your worksheet name

        For i = 2 To 100

            If .Cells(i, 3).Value = 0 And .Cells(i - 1, 3).Value > 100 Then

                If str = "" Then
                    str = "Figure_one " & .Cells(i - 1, 3).Value
                Else
                    str = str & ", Figure_one " & .Cells(i - 1, 3).Value
                End If

            End With

        Next i

        Set olObj_1 = New Outlook.Application
        Set mItem_1 = olObj_1.CreateItem(olMailItem)

        With mItem_1
            .To = "xxxx@xxxx.com"
            .Subject = str
            .Send
        End With

    End With

End Sub

很高兴有帮助,请考虑把这个标记为答案,以便其他人能够找到它。