Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2014, 08:47   #11
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

1. Прорисовка символов индекса в макросе "Формирование_бланка_ф7а_1" происходит следующим образом:
В основном (внешнем) цикле перебираем все символы (цифры) ячейки листа "Лист1", содержащей индекс. В этом цикле выделяем текущую цифру (переменная "n"). Затем, следует 2 цикла подряд. В 1-ом обрабатывается верхний квадрат (диапазон ячеек) формируемого символа, во 2-ом - нижний аналогично. Причем, адреса этих диапазонов определяются в этих же циклах с помощью "Resize" и "Offset".
Как известно, все именованные константы в Excel имеют числовой эквивалент. Так, например, xlDiagonalUp = 6, xlEdgeLeft = 7 и т. д. (см. встроеннюю справку VBE). В каждом внутреннем цикле мы перебираем интересующие нас границы (от 6 до 10) и прорисовываем их согласно коду в массиве "a"
Массив содержит 10 элементов по 10 символов. Элементы - это закодированные символы индекса от 0 до 9 по порядку. Каждый символ - это наши 10 границ (5 первых - для верхнего квадрата и 5 следующих для нижнего), которые имеют значения либо 1 = xlHairline, либо 4 = xlThick. Символ "#" VBE вставляет автоматически. Потому, что массив сформирован из чисел (чтобы не использовать кавычки), и если 10-ти разрядное число начинается с 4, то оно уже имеет тип "Double". Именно на это и указывает данный символ.
Переменная "k" - это шаг смещения диапазона для формирования символов. Здесь, на всякий случай, я вставил проверку. Т. е. если по каким-либо причинам в индексе будет более 6-ти символов, то они не будут сформированы и не испортят данные на листе.
2. Знак $ в конце переменной FileNum$ означает, что переменная имеет тип "строковая". В прилагаемом файле эта переменная объявлена при описании, как "Dim FileNum As String". Поэтому, символ $ ни к чему. Этой переменной присваивается значение ячейки "AE1", осуществляется сохранение файла с этим именем, затем содержимое ячейки инкрементируется, подготавливая имя для последующего сохранения.
3. В прилагаемом файле проблема при работе с одной выделенной ячейкой исключена.
Вложения
Тип файла: rar форма 7а_3.rar (217.3 Кб, 8 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 23.05.2014 в 03:28.
SAS888 вне форума Ответить с цитированием
Старый 27.05.2014, 19:48   #12
Kefirrr
Пользователь
 
Регистрация: 05.06.2010
Сообщений: 53
По умолчанию

Спасибо за подробное разъяснение. я поняла как обрабатываются границы.
Kefirrr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с выделенным диапазоном DAN1L Microsoft Office Excel 5 29.11.2012 03:54
Функция с параметром диапазоном savraska Microsoft Office Excel 5 26.05.2010 13:35
работа с диапазоном ячеек? panzergto Microsoft Office Excel 4 01.04.2010 21:25
Работа с именным диапазоном tae1980 Microsoft Office Excel 32 21.08.2009 11:10
работа с выделенным диапазоном nastya007 Microsoft Office Excel 5 13.03.2009 08:33