Excel 发送电子邮件标题中的单元格卷
我需要一个脚本,审查数字从上到下的第三列,如果它看到0和数字之前,它是大于100,然后该数字的值是在电子邮件标题发送。 当前版本的编码将所有值发送到电子邮件(该条件不起作用)。 但是如果GoTo被Msgbox替换,脚本就可以完美地工作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
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
很高兴有帮助,请考虑把这个标记为答案,以便其他人能够找到它。