excel 基于相邻单元格值构建字符串,而不是复选框

bvhaajcl  于 2022-12-01  发布在  其他
关注(0)|答案(1)|浏览(85)

我正在尝试为TO构建一个字符串:一个Outlook电子邮件的字段。在列A中,用户可以键入或从下拉列表中选择“是”或“否”,以指示列B中的哪个人应该接收电子邮件。现在,我这样做,而不是尝试复选框,这似乎更有挑战性。我有下面的代码,实际上工作,以建立一个字符串TO:,但我不知道如何编码“是”和“否”的条件开/关。目前,电子邮件正在发送给列B中的每个人。任何帮助修复如果语句和行循环将不胜感激。非常感谢!
第一个

wljmcqd8

wljmcqd81#

在您提供的代码中,对于检查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

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

相关问题