Excel 使用列值作为条件发送电子邮件

Excel 使用列值作为条件发送电子邮件,excel,vba,email,conditional-statements,Excel,Vba,Email,Conditional Statements,我需要将工作表每行的内容邮寄到“U”列中的电子邮件地址。程序需要验证“需要发送”(第五列)以及是否已经“通过电子邮件发送”(第W列) 有一个类似的问题,但对我没有帮助 一些细节: 电子邮件地址列(U列)是一个公式,它使用另一个工作表中的VLOOKUP公式搜索电子邮件 宏运行(没有调试),但什么也没有发生。邮件上的草稿未创建 我尝试只使用一个条件,它为整个列表创建了所有草稿(似乎正常工作) Sub-email() Dim OutApp作为对象 将邮件变暗为对象 暗淡单元格作为范围 Applic

我需要将工作表每行的内容邮寄到“U”列中的电子邮件地址。程序需要验证“需要发送”(第五列)以及是否已经“通过电子邮件发送”(第W列)

有一个类似的问题,但对我没有帮助

一些细节:

  • 电子邮件地址列(U列)是一个公式,它使用另一个工作表中的VLOOKUP公式搜索电子邮件
  • 宏运行(没有调试),但什么也没有发生。邮件上的草稿未创建
  • 我尝试只使用一个条件,它为整个列表创建了所有草稿(似乎正常工作)
Sub-email()
Dim OutApp作为对象
将邮件变暗为对象
暗淡单元格作为范围
Application.ScreenUpdating=False
Set-OutApp=CreateObject(“Outlook.Application”)
对于工作表中的每个单元格(“查询\导出\结果”)。列(“U”)。单元格。特殊单元格(xlCellTypeFormulas)
Set-OutMail=OutApp.CreateItem(0)
如果单元格值像“*@*。?*”和_
LCase(单元格(cell.Row,“V”).值)=“Y”和_
LCase(Cells(cell.Row,“W”).Value)=“然后
发邮件
.To=单元格(cell.Row,“U”).值
.Subject=“不遵守通知”
.Body=“遵守注册通知。”
.展示
’发送
以
单元格(cell.Row,“W”).Value=“已发送”
发送邮件=无
如果结束
下一个细胞
'出发应用程序=无
Application.ScreenUpdating=True
端接头

您的条件
LCase(Cells(cell.Row,“V”).Value)=“Y”
将永远不会为真,因为您有一个大写的“Y”,但您正在测试一个小写的单元格值。将
LCase
更改为
UCase
或将“Y”更改为“Y”。

您能更清楚地解释一下“我尝试使用一个条件,它为整个列表创建了所有草稿(似乎正常工作)”的意思吗?“一个条件”是什么?你好,先生!谢谢你的回答。我的意思是,在“If cell.Value”一行中,比如“*@?*?*”和“如果我删除了”和“并且不使用后面的两行,它会工作。但是为工作表的所有行创建草稿。我认为问题在于这里
LCase(Cells(cell.Row,“W”).Value)=“”
当单元格为空时,excel无法将其转换为小写。尝试
单元格(cell.Row,“W”)=“”