Вы бы назвали подпрограмму как
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
это не нужно, и может вызвать проблемы только у вас в будущем.