我认为公式很简单,但是收到不匹配错误。 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
答案 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
上使用它的假设。