Проблема в том, что Rows(I)
возвращает объект диапазона, а не целочисленное значение. Вы должны полностью квалифицировать свои утверждения следующим образом: TotalCRng.Rows(I).Cells(1, 1).Value
или, возможно, TotalCRng.Cells(1, 1).Value
. Написанный как есть, Excel вернет значение из Rows (I), если оно окажется одной ячейкой, в этом случае вызывается свойство значения диапазона, но в противном случае возникнет ошибка несоответствия типов, которую вы видите, потому что вы попытка сравнить диапазон с целым числом.
Пример:
'no error
Debug.Print Sheet1.Range("B1")
'type mismatch error
Debug.Print Sheet1.Range("B1:B12")
Кроме того, имейте в виду, что только верхняя левая ячейка объединенного диапазона будет фактически возвращать значение.