如何解决VBA中IF公式的不匹配错误?

时间:2018-11-19 13:36:24

标签: excel vba excel-vba excel-formula

我认为公式很简单,但是收到不匹配错误。 M列的格式为常规,并包含文本。 P:O列的格式为数字。奇怪的是,我没有一个简单的标准就会出现失配错误。当我使用“ AND”字词时,它只会返回错误。

Sub Test()
Dim wsTD As Worksheet
Set wsTD = Sheets("Summary").Range("M2")

With wsTD
    LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
     For i = 2 To LastRow
        If (.Cells(i, "M").Value) <> ("A") And (.Cells(i, "M").Value) <> ("B") And (.Cells(i, "M").Value) <> ("C") And (.Cells(i, "M").Value) <> ("D") And (.Cells(i, "M").Value) <> ("E") And (.Cells(i, "M").Value) <> ("F") And (.Cells(i, "M").Value) <> ("G") Then
           .Cells(i, "A").Range("P2") = "O2*.98"
         End If
     Next i
 End With

End Sub

1 个答案:

答案 0 :(得分:0)

Set wsTD = Sheets("Summary").Range("M2")应该只是Set wsTD = Sheets("Summary")

目前,With wsTD中的所有内容都基于单元格M2

例如
如果Range("M2").Cells(i,"A").Range("P2"),则AB3指的是单元格i = 1

  • Range("M2")是起始单元格。
  • Cells(1,"A")指该范围内的第一个单元格,即M2
  • Range("P2")跨16列,距离起始范围AB3下2个像元。

将公式添加到列P的单元格仅添加文本“ O2 * .98”。要添加您要使用的公式:

.Cells(i, "P").Formula = "=O2*0.98"  

这是基于您希望在列i的行P上使用它的假设。