У меня была похожая проблема перечисления, когда без видимой причины UPPERCASE был изменен на MixedCase.
Enum eRowDepths
BD = 1
CF = 1
Separator = 1
Header = 3
subTotal = 2
End Enum
Когда я перешел к следующему (отслеживая последний символ несоответствующих переменных), у меня не было проблем
Enum eRowDepths
BD = 1
CF = 1
SEPARATO = 1
HEADE = 3
SUBTOTA = 2
End Enum
Оказывается, это случай, когда хвост виляет собакой. У меня есть следующий код, не самый элегантный, который я допускаю, но, тем не менее, работает (пожалуйста, извините за проблемы форматирования): -
'insert 3 rows
iSubTotalPlaceHolder = i<br>
rows(ActiveSheet.Range(rangeDMirrorSubTotals).Cells.Count + _
Header _
& ":" _
& ActiveSheet.Range(rangeDMirrorSubTotals).Cells.Count + _
Header + _
subTotal + _
Separator).Insert
Так что кажется, что компилятор не будет принимать явные константы UpperCase как часть этого оператора.
Это было приемлемо
Dim fred as Integer
fred = SEPARATO + HEADE + SUBTOTA
Так что мой обходной путь - использовать переменную вместо констант как часть сложного оператора вставки, если я хочу придерживаться правила хранения перечислимых констант в верхнем регистре.
Я надеюсь, что это полезно