У нас на форуме время от времени в процессе обсуждения вопроса выкладываются фрагменты кода (к счастью, последний раз подобное было давно), где для обозначения специальной величины Null используется константа vbNull.
Константа vbNull, как и все энумированные константы, имеет тип Long, и равна единице. Она - одно из значений, которые может вернуть функция VarType. VarType(Null) = vbNull. VarType(Null) = 1.
Тем не менее, авторы подобных фрагментов настойчиво используют её в качестве самого Null.
Только что просматривал MSDN - искал, нет ли ограничений у контрола MSChart на максимальную величину точки данных (вопрос всплыл соответствующий на форуме). Поискал в KB, и о чудо - есть Q про MSChart. Q повествует о том, как отобразить на MSChart отсутствующее значение, т.е. Null. Для этого надо всего лишь указать NullFlag = True при вызове метода SetData, но... имеющий глаза да увидит, как реализована проверка того, нужно ли ставить этот флаг.
Попробуйте теперь в том коде вместо vArray(i, j) = Int((Rnd(10) + Rnd(10) * 10) * 10) написать vArray(i, j) = 1 (ну вот стабильный у вас доход, по 1 штуке в месяц, и вы хотите его нарисовать). Остальной код не меняйте.
С ужасом думаю, что само Писание и стало источником тупой ошибки, освещённой в двух первых абзацах...