По определению, постоянная равна постоянная и не изменяется. Правая часть объявления Const
не может быть выражением переменной (которым является col
, потому что пользователь вводит его).
Const nameCol As String = "B" '<~ this is good
Const nameCol As String = col '<~ col can change ... so by definition, this is bad
Устранить проблему Вы можете добавить дополнительный параметр к CopyConditional
и передать col
.
Sub CopyConditional(ByVal wshS As Worksheet, ByVal WhichName As String, ByVal Namecol As String)
' remove the Const Namecol = col line
Затем при вызове CopyConditional
:
CopyConditional ws, ws.Range(col & i).Value, col