在您提供的代码中,对于检查yesnostr是否为yes或no的逻辑,yes的结果是将sTo设置为整个emailRng(在For Each cl In emailRng...期间循环遍历每个单元格),因此,如果其中任何一个为yes,则无论如何都会添加所有电子邮件地址--每次为yes时都会发生这种情况。 一个简单的解决办法就是在“是”旁边加上一个电子邮件地址,然后在你反复查看时将其添加到你的列表中:
For Each cell In yesno.Cells
If (LCase(cell.Value) = "yes") Then
sTo = sTo & ";" & cell.Offset(0, 1).Value
End If
Next cell
1条答案
按热度按时间wljmcqd81#
在您提供的代码中,对于检查
yesnostr
是否为yes或no的逻辑,yes的结果是将sTo
设置为整个emailRng
(在For Each cl In emailRng...
期间循环遍历每个单元格),因此,如果其中任何一个为yes,则无论如何都会添加所有电子邮件地址--每次为yes时都会发生这种情况。一个简单的解决办法就是在“是”旁边加上一个电子邮件地址,然后在你反复查看时将其添加到你的列表中:
Offset(0,1)
引用了向下第0行和向右第1列的单元格。LCase()
只取单元格的小写值,所以你可以只检查一次。这也意味着它将适用于yEs,yES等。进一步阅读:
https://learn.microsoft.com/en-us/office/vba/api/excel.range.offset
https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/lcase-function