Как решить ошибку несоответствия для формулы IF в VBA? - PullRequest
0 голосов
/ 19 ноября 2018

Я думал, что формула достаточно проста, но я получаю ошибку несоответствия.Столбец М отформатирован как общий и содержит текст.Столбцы P: O отформатированы для чисел.Странно то, что я не получаю ошибку несоответствия с одним простым критерием.Он возвращает ошибку только при использовании термина «И».

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 голосов
/ 19 ноября 2018

Set wsTD = Sheets("Summary").Range("M2") должно быть просто Set wsTD = Sheets("Summary").

В настоящий момент все в With wsTD основано на ячейке M2.

1009 * Е.Г. * Range("M2").Cells(i,"A").Range("P2") относится к ячейке AB3, если i = 1.

  • Range("M2") - начальная ячейка.
  • Cells(1,"A") относится к первой ячейке в этом диапазоне - которая равна M2.
  • Range("P2") имеет 16 столбцов в поперечнике и 2 ячейки ниже начального диапазона, который равен AB3.

В ячейку, добавляющую формулу к столбцу P, добавляется только текст «O2 * .98». Чтобы добавить формулу, вы будете использовать:

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

Это основано на предположении, что вы хотите это в строке i в столбце P.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...