Ответ 1
Вы бы назвали sub как
EnterCellValueMonthNumber "N23:Q23", 1
Без скобок. Или
Call EnterCellValueMonthNumber("N23:Q23", 1)
Скобки и Call
перед этим.
Кроме того, ваш Sub ожидает объект Range в качестве первого аргумента, и вы предоставляете строку; вы должны изменить подпись под:
Sub EnterCellValueMonthNumber(cells As String, number As Integer)
Кроме того, я не уверен, что вы пытаетесь достичь с помощью этого кода, поскольку он будет устанавливать только верхнюю левую ячейку диапазона 1. Будет что-то вроде
Range(cells).Value = number
' Or, if you're going to be passing in something more complex later...
Range(cells).FormulaR1C1 = number
более подходящим?
Я также очень опасаюсь использовать Range("...")
, не указывая, на какой лист вы ссылаетесь. Это будет действовать в зависимости от того, какой активный лист и может вызвать неожиданные проблемы, почти всегда предпочитает SheetX.Range("...")
. Точно так же для использования .Select
это не нужно и может только вызвать проблемы для вас в будущем.