If ThisWorkbook.Worksheets("check").Cells(2, 11).Value <> "Check ok" And ThisWorkbook.Worksheets("check").Cells(2, 12).Value <> "Check ok" And ThisWorkbook.Worksheets("check").Cells(2, 13).Value <> "Check ok" Then With OutMail '發送電子郵件給窗口 .To = rec1 '收件人 .Subject = company + " " + "FA Check 不平,請Check" + "-" + Mth '主旨 ' .Body = "Dear All, " & vbCrLf & " " & " " & " " & " " & "FA Check 不平,請Check!" & vbCrLf & " " & " " & " " & " " & "This is the email and report generated by RPA!" .HTMLBody = "Dear All, " & vbCrLf & "<TABLE align=LEFT>" & "FA Check 不平,請Check!" & vbCrLf & "<TABLE align=LEFT>" & "<TABLE align=LEFT>" & Range_to_Html(Sheets("check").[A1:M2]) & "</TABLE>" & vbCrLf & "<TABLE align=LEFT>" & "<TABLE align=LEFT>" & "This is the email and report generated by RPA!" ' & "</TABLE>" '邮件内容 ' .HTMLBody = "Dear All, " & vbCrLf & "<TABLE align=LEFT>" & "FA Check 不平,請Check!" & vbCrLf & "<TABLE align=LEFT>" & "<TABLE align=LEFT>" & Range_to_Html(Sheets("check").[G1].CurrentRegion) & "</TABLE>" & vbCrLf & " " & " " & " " & " " & "This is the email and report generated by RPA!" ' & "</TABLE>" '邮件内容 .display .Send End With End If
时间: 2023-07-21 18:02:10 浏览: 87
根据您提供的代码,条件判断部分没有问题。如果判断条件成立,将执行`With OutMail`和`.display`之后的代码块,发送邮件。
在您提供的代码中,您使用了`.HTMLBody`属性来设置邮件的HTML内容。您可以根据需要进行自定义,这里使用了`Range_to_Html`函数将"check"工作表中的指定区域转换为HTML表格,并将其添加到邮件的HTML内容中。
请注意,这里的`Range_to_Html`函数是您自定义的一个函数,我无法直接访问您的代码。如果您遇到任何问题,请确保`Range_to_Html`函数正确地将指定区域转换为HTML表格,并且确保您的邮件配置正确无误。
如果您仍然遇到问题,请提供更多上下文或相关代码,我将尽力帮助您解决。
相关问题
Cells(2, 11).Value ="Check ok" Cells(2, 12).Value ="Check " Cells(2, 13).Value ="Check" If ThisWorkbook.Worksheets("check").Cells(2, 11).Value <> "Check ok" And ThisWorkbook.Worksheets("check").Cells(2, 12).Value <> "Check ok" And ThisWorkbook.Wor 這段代碼為什麼判斷出來的結果不對
根据您提供的代码,条件判断部分存在问题。根据您提供的情况,`Cells(2, 11).Value`的值为"Check ok",这意味着第一个条件将为假,不满足判断条件。因此,整个条件判断表达式的结果将为假。
您所期望的判断结果应该是根据单元格的值是否等于"Check ok"来确定。如果您希望只有在这三个单元格的值都不等于"Check ok"时才满足条件,可以使用逻辑运算符`And`来组合这三个条件:
```vb
If Cells(2, 11).Value <> "Check ok" And Cells(2, 12).Value <> "Check ok" And Cells(2, 13).Value <> "Check ok" Then
' 执行条件满足时的代码
End If
```
如果以上代码的判断结果仍然不符合您的预期,请提供更多相关代码或上下文信息,以便我更好地帮助您解决问题。
ThisWorkbook.Worksheets("check").Cells(2, 11).Value <> "Check ok" And Cells(2, 12).Value <> "Check ok" And Cells(2, 13).Value <> "Check ok"
你可以使用下面的 VBA 代码来根据你提供的条件发送邮件:
```vba
Sub SendEmail()
Dim ws As Worksheet
Dim OutlookApp As Object
Dim OutlookMail As Object
' 设置工作表
Set ws = ThisWorkbook.Worksheets("check") ' 替换为你想要使用的工作表名称
' 如果条件满足
If ws.Cells(2, 11).Value <> "Check ok" And ws.Cells(2, 12).Value <> "Check ok" And ws.Cells(2, 13).Value <> "Check ok" Then
' 创建 Outlook 应用对象
Set OutlookApp = CreateObject("Outlook.Application")
' 创建新邮件
Set OutlookMail = OutlookApp.CreateItem(0)
' 设置收件人、主题和内容
With OutlookMail
.To = "AA@example.com" ' 替换为你想要发送邮件的收件人邮箱地址
.Subject = "问题警报" ' 替换为你想要设置的邮件主题
.Body = "请注意,满足条件的单元格内容不等于 ""Check ok""" ' 替换为你想要设置的邮件内容
.Display ' 显示邮件
' 或者使用以下代码直接发送邮件
'.Send
End With
' 释放对象
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End If
End Sub
```
在上面的代码中,我使用了 `ThisWorkbook.Worksheets("check")` 来引用名为 "check" 的工作表。然后,我使用 `ws.Cells(2, 11).Value`、`ws.Cells(2, 12).Value` 和 `ws.Cells(2, 13).Value` 来获取相应单元格的值。你可以根据你的实际需求修改这些参数。
请记得将以下内容替换为你所需的信息:
- `check`:替换为你想要使用的工作表名称。
- `AA@example.com`:替换为你想要发送邮件的收件人邮箱地址。
- `"问题警报"`:替换为你想要设置的邮件主题。
- `"请注意,满足条件的单元格内容不等于 ""Check ok"""`:替换为你想要设置的邮件内容。
你可以将以上代码复制到 VBA 编辑器中,并在需要的时候运行宏。如果满足条件,将会弹出一个新的 Outlook 邮件窗口,你可以在其中进行进一步编辑和发送。如果你想要自动发送邮件,请取消注释 `.Send` 这一行代码,并注释掉 `.Display` 这一行代码。
阅读全文