Страницы: 1
RSS
Оптимизация кода. Ширина строк и высота столбцов (мм)
 
Доброго времени суток. Подскажите, если не составит труда, как грамотно подогнать ширину строк и высоту столбцов (в миллиметрах). Дело в том, что в моем случае на это уходит ~ 3,53 или около 95% от времени выполнения всех процедур (подготовительных). Пример в файле.
 
Жуть!  
Для чего такое издевательство над Excel и здравым смыслом?
 
Нужно график очень хитрый построить. Что-то типа тетриса. По сути вопроса можете подсказать?
 
Почему в цикле? Сразу задать нельзя?  
И про график бы подробнее: вдруг есть пути оптимальнее?
 
Условия задачи таковы: в каждом месяце условно 30 дней. Один день отображается на графике в масштабе 1 мм. График строится на один условный год. Исходными данными для построения графика служат:  
1) Начало и продолжительность работы (дни) – горизонтальная ось;  
2) Количество задействованных машин – вертикальная ось (одна машина в масштабе – 1 см);  
Также на график нужно наносить индекс работ. Еще надо делать дополнительные построения (их я собираюсь делать шейпами).  
 
!Самое главное – если работы попадают на один промежуток условного года, то они друг друга должны «обтекать» подобно тетрису (см. приложенный файл).  
 
Лучшей среды, чем ячейки Excel для построения подобных графиков я не нашел. Пробовал сделать в MS Visio, Corel Draw и AutoCad (там ИМХО - это более трудоемкий процесс).
 
время выполнения 18 сек  
 
Private Sub SetColumnWidthMM(ColNo As Integer, mmWidth As Integer)  
' устанавливаем ширину столбца в мм  
Dim w As Single, j1, j2, j3  
   'цена мм в пунктах  
   w = Application.CentimetersToPoints(mmWidth / 10)  
   'ширина в пунктах  
   j1 = Columns(ColNo + 1).Left - Columns(ColNo).Left  
   'ширина в символах  
   j2 = Columns(ColNo).ColumnWidth  
   'символов на мм  
   j3 = Round(j2 * w / j1, 1)  
   Debug.Print ColNo, j1, j2, j3  
   'ширина в символах  
   Columns(ColNo).ColumnWidth = j3  
   'Debug.Print w \ 1;  
   j2 = j2 + 0  
End Sub
 
Извините за "издевательства...", это не то, о чем я подумал. Бывает, такие художества проделывают для составления всяческих бланков, заполнение и расчеты которых потом пытаются автоматизировать.  
 
Но, как червяк, какое-то внутреннее "а меня послушать?": диаграммой соорудить не получится?
 
vikttur  
На счет диаграммы была мысля, но как-то не сильно вникая в объектную модель диаграмм Excel предположил, что там оформить так как мне надо не получится...    
С ячейками алгоритм построения как-то сразу вырисовывается:  
1) Проверяю, не заняты ли ячейки в месте, где необходимо отобразить операцию, если заняты - определяю первую пустую ячейку выше  
2) Объединяю ячейки и заполняю индексами  
 
+ Мне потом нужно будет еще дополнительные построения провести (линии начертить)  
 
Возможно я не прав. Если с диаграммой кто-то делал что-то похожее, подскажите, можно сделать так, или нет. Благодарю...
Страницы: 1
Читают тему
Наверх