如果/或公式没有给出正确的True或False语句

时间:2016-02-24 11:13:05

标签: excel vba excel-vba if-statement

我有一个If公式作为我的宏代码的一部分,它似乎没有以正确的方式工作。

下面的代码计算rCell.Offset并始终将其应用为True,我有一些示例,它等于112,113,118等,并且它将所需的单元格填充为选项2.

If rCell.Offset(0, -2).Value = "101" Or "102" Then
        rCell.Value = "Option 2"
        Else
        rCell.Value = "Option 1"
        End If

我错过了什么吗?

2 个答案:

答案 0 :(得分:5)

是。试试这个

If rCell.Offset(0, -2).Value = "101" Or rCell.Offset(0, -2).Value = "102" Then

编辑:基本上你的代码是在询问

If "102" 

总是会返回true。

答案 1 :(得分:1)

我出去了,并说rCell.Offset(0,-2)中的数字是实际数字而不是文本 - 看起来像数字。请记住sankey,因此请删除引号并更正或语法。

sankey.js

另一种选择是Select Case statement

Option Explicit

Private Sub CommandButton1_Click()

On Error GoTo ErrHandler

' SET Outlook APPLICATION OBJECT.
Dim objOutlook As Object
Set objOutlook = CreateObject("Outlook.Application")

' CREATE EMAIL OBJECT.
Dim objEmail As Object
Set objEmail = objOutlook.CreateItem(olMailItem)

With objEmail
    .To = "jack@jill.com"
    .Subject = "Issue Resolution Request"
    .Body = "Hi Finance Systems, please see the attached issues log for your attention"
    ThisWorkbook.Save
    .Attachment.Add ThisWorkbook.Path & "\" & ThisWorkbook.Name
    .Send        ' SEND THE MESSAGE
End With

Set objEmail = Nothing:    Set objOutlook = Nothing

ErrHandler:

End Sub

当有几种情况需要检查时,这种状态评估的好处就会很明显。