Страницы: 1
RSS
VBA: Строим орг. структуру по таблице
 
Всех с Новым Годом!  
 
У пользователя Excel 2007. За неимением лучшей альтернативы в Excel 2007 (объекта Diagram УЖЕ(!) нет, а объект SmartArt ЕЩЕ(!) непрограммируем до Excel 2010), строю орг. структуру через объект Shape (см. вложение)  
 
Все бы ничего, да такая неприятность: при первом запуске кода после открытия файла или внесения изменений в код, структура строится неверно - наслаиваются формы (рис. 1 в файле). При последующих запусках, все строится корректно (рис. 2 в файле). Проблема воспроизводится в версиях 2003, 2007 и 2010.  
 
Видимо глаз замылился от долгого думания, не могу понять, почему это происходит. Буду признателен за свежий взгляд.  
 
Спасибо.  
 
ЗЫ: Юрий! Спасибо :)
KL
 
С Новым Годом, Кирилл! И всех поздравляю.  
Код с рекурсиями трудно отлаживать, особенно если есть глобальные переменные.  
Методом тыка установил в начале кода lngOldDepth = 1 и вроде все сработало :-)  
 
Dim lngOldDepth As Long  
Sub MakeTree()  
   Dim sh As Shape  
   lngOldDepth = 1  ' <--- Добавлено  
   ...  
End Sub
 
Эта переменная после сброса или при первом запуске равна нулю, а после первой отработки (перед очередной) её значение уже не нулевое (равно 2 в примере).
 
Спасибо, Владимир! Помогло. Мозг уже кипел.  
 
Поставил:  
 
lngOldDepth = -1
KL
 
{quote}{login=KL}{date=04.01.2011 12:51}{thema=}{post}...Мозг уже кипел...{/post}{/quote}Ещё шампанского в него! :-)
Страницы: 1
Наверх