excel - 电子邮件正文循环值
问题描述
我正在尝试遍历工作表中的一列 (n=96),当它遇到一个 <10 的值时,我希望宏从它找到的值中打开 Outlook 和电子邮件偏移值(四列)。
我已经生成了一个工作示例,尽管它似乎仅限于我测试过的一个示例。我想我是从错误的角度接近它。
Sub SendReminderMail()
Dim p As Long
Dim OutLookApp As Object
Dim OutLookMailItem As Object
Dim iCounter As Integer
Dim MailDest As String
'If MsgBox("Are you sure?", vbYesNo) = vbNo Then Exit Sub
Set OutLookApp = CreateObject("Outlook.application")
Set OutLookMailItem = OutLookApp.CreateItem(0)
p = 2
Do Until Trim$(Cells(p, 1).Value) = ""
If Cells(p, 1).Value <= 10 Then
Set OutLookMailItem = OutLookApp.CreateItem(0)
With OutLookMailItem
.To = "Emailaddress etc"
.Subject = "Reminder: " & Cells(1, 7).Value
.Body = Cells(p, 1).Offset(0, 4).Value
.Display
End With
End If
p = p + 1
Loop
End Sub
如何将其设置为遍历所有 <10 值并告诉它将偏移值粘贴到电子邮件正文中?
解决方案
我认为您需要将其拆分为两个代码块。
第一个块将遍历行,检查条件,如果需要,调用第二个块,因此邮件发送 Sub,传递必要的参数。
类似于下面的代码:
Sub SendReminderMail(ByVal MailSubject As String, mailBody As String)
Dim p As Long
Dim OutLookApp As Object
Dim OutLookMailItem As Object
Dim iCounter As Integer
Dim MailDest As String
'If MsgBox("Are you sure?", vbYesNo) = vbNo Then Exit Sub
Set OutLookApp = CreateObject("Outlook.application")
Set OutLookMailItem = OutLookApp.CreateItem(0)
Set OutLookMailItem = OutLookApp.CreateItem(0)
With OutLookMailItem
.To = "Emailaddress etc"
.Subject = MailSubject
.Body = mailBody
.Display
End With
End Sub
Sub IterateThroughRows()
Dim p As Integer
Dim Sht As Worksheet
Dim MailSubject As String
Dim mailBody As String
Set Sht = ThisWorkbook.Sheets("SheetName")
p = 2
Do Until Sht.Cells(p, 1).Value = ""
If Cells(p, 1).Value <= 10 Then
mailBody = mailBody + " | " + Sht.Cells(p, 1).Offset(0, 4).Value
End If
p = p + 1
Loop
Call SendReminderMail(MailSubject, mailBody)
MailSubject = "Reminder: " & Sht.Cells(1, 7).Value
End Sub
推荐阅读
- flutter - 在颤动中更改语言后如何刷新应用程序当前屏幕?
- html - 如何在 Vue js 中将相对图像 url 转换为绝对图像 url?
- sql - SQL Server 首先按 ParentID 排序,然后是 Child
- swift - 获取 SCNNode Swift 的方向
- google-cloud-platform - 在 Debian 10 中安装 Google SDK?
- php - 内存不足,可能刷新
- mongodb - 如何在 React Native 中使用 Rest api;网络呼叫问题
- node.js - 使用 node.js 在 AWS-Lamda 函数上使用第三方 Api
- java - 如何将数据从片段发送到另一个活动
- javascript - 在 client_credentials Spotify API 请求上获取 400 错误状态代码