Что здесь произошло?
Если вы внимательно присмотритесь к своему коду и добавите его в редактор
Worksheets("A").Range("A1").Formula ="=COUNTIF($B$2:$B$8,">"&$B2)+COUNTIF($B$2:B2,B2)"
, он автоматически добавит несколько пробелов, как показано ниже
Worksheets("A").Range("A1").Formula = "=COUNTIF($B$2:$B$8," > "&$B2)+COUNTIF($B$2:B2,B2)"
Таким образом, вы можете ясно видеть, что он состоит из 4 частей:
Worksheets("A").Range("A1").Formula
ссылка на формулу ячеек =
оператор "=COUNTIF($B$2:$B$8,"
String1 >
другой оператор "&$B2)+COUNTIF($B$2:B2,B2)"
String2
Так что получается, что Excel сравнивает 2 строки с >
, потому что это не так часть формулы, которая закончилась со вторым "
. Так что String1 > String2
- это либо True
, либо False
.
Решение
Чтобы включить >
в формулу, вам нужно удвоить кавычки в строке.
Worksheets("A").Range("A1").Formula = "=COUNTIF($B$2:$B$8,"">""&$B2)+COUNTIF($B$2:B2,B2)"
Теперь "=COUNTIF($B$2:$B$8,"">""&$B2)+COUNTIF($B$2:B2,B2)"
рассматривается как одна целая строка.