В довольно большой программе Excel, над которой я работаю, у меня есть много именованных ячеек в электронных таблицах, которые заполняются данными, чтобы помочь сохранить согласованность форматирования, если пользователь когда-либо решит переместить настройку шаблона, и избежать жесткого кодирования номера строк/столбцов в различных подпунктах. К сожалению, это приводит к большому количеству уродливых ссылок на диапазоны в моем коде, примеры ниже. Есть ли более простой/чистый, более удобочитаемый способ написать то, что мне не хватает?
'Examples of ugly range references:
Range(Range("GS_BeginData").Offset((counter + m), -1), Range("GS_BeginData").Offset((counter + m), 2))
Range(Range("GS_BeginData").Offset(counter, 1), Range("GS_BeginData").Offset((counter + fileCount), 1))
Range("SS_Unit", Range("SS_Unit").Offset(0, 1))
Range("SS_BeginData", Range("SS_BeginData").End(xlDown))
Cells((Range("SS_BeginData").Row + i), (Range("SS_BeginData").Column + 1))
Я полагаю, что всегда мог бы установить просто именованные переменные для этих различных именованных ячеек и диапазонов в начале Subs, чтобы очистить внешний вид кода, но у меня их довольно много, и я действительно не хочу добавлять тонны строк объявлений переменных в начало всех моих Subs.
Set GSBD = Range("GS_BeginData")
. Тогда все, что вам нужно использовать, это переменная. - person Scott Craner   schedule 09.12.2015With
операторы. Объедините это с предложением @ScottCraner установитьRange
переменных, и вы уже в пути! - person BruceWayne   schedule 09.12.2015