Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Excel   Найти похожие ветки 

 
N   (2004-03-17 06:44) [0]

Здравствуйте, помогите кто как может.

Не получается выделить блок ячеек в Excel, разлиновать,
потом, конечно снять выделение.
Заранее, спасибо,


 
KSergey ©   (2004-03-17 07:06) [1]

Работаем через OLE? Тогда примерно так (извиняюсь за длинноватый примерчик, вырезать лень)

 procedure SetDataFormat;
 var Sel: Variant;
     i: Integer;
 begin
   if r <= rDataStart then Exit;  // данных не перенесено
     // выравнивание текста
   if AAlignments <> nil then
     for i := 1 to cMax do
     begin  // в r-1 записан номер последней строки с данными
       Worksheet.Range[Cells.Item[rDataStart,i], Cells.Item[r-1,i]].Select;
       Sel := MSExcel.Selection;
       case AAlignments[i-1] of
         taLeftJustify:  Sel.HorizontalAlignment := xlLeft;
         taRightJustify: Sel.HorizontalAlignment := xlRight;
         taCenter:       Sel.HorizontalAlignment := xlCenter;
       end;
     end;
     // бордюр ячеек
   Worksheet.Range[Cells.Item[rDataStart,1], Cells.Item[r-1,cMax]].Select;
   Sel := MSExcel.Selection;
   Sel.Borders[xlInsideVertical].LineStyle := xlContinuous;
   Sel.Borders[xlInsideVertical].Weight := xlThin;
   Sel.Borders[xlInsideVertical].ColorIndex := xlAutomatic;
   Sel.Borders[xlInsideHorizontal].LineStyle := xlContinuous;
   Sel.Borders[xlInsideHorizontal].Weight := xlThin;
   Sel.Borders[xlInsideHorizontal].ColorIndex := xlAutomatic;
   Sel.Borders[xlEdgeLeft].LineStyle := xlContinuous;
   Sel.Borders[xlEdgeLeft].Weight := xlMedium;
   Sel.Borders[xlEdgeLeft].ColorIndex := xlAutomatic;
   Sel.Borders[xlEdgeRight].LineStyle := xlContinuous;
   Sel.Borders[xlEdgeRight].Weight := xlMedium;
   Sel.Borders[xlEdgeRight].ColorIndex := xlAutomatic;
   Sel.Borders[xlEdgeTop].LineStyle := xlContinuous;
   Sel.Borders[xlEdgeTop].Weight := xlMedium;
   Sel.Borders[xlEdgeTop].ColorIndex := xlAutomatic;
   Sel.Borders[xlEdgeBottom].LineStyle := xlContinuous;
   Sel.Borders[xlEdgeBottom].Weight := xlMedium;
   Sel.Borders[xlEdgeBottom].ColorIndex := xlAutomatic;
   Sel.Font.Bold := False;
 end;


 
N   (2004-03-17 07:44) [2]

спасибо, но у меня не идентифицируются свойства - xlInsideVertical и т.д.
что делать?


 
KSergey ©   (2004-03-17 07:57) [3]

Либо писать значение этих констант, либо взять файл констант, портированный под дельфи. Либо самому же его и спортировать, как описано в любой книжке по COM (хотя у меня лично не получилось, каюсь)

Где я взял - не помню, вроде от XLReport (возможно, на их сайте). Если надо - могу намылить (в частности файл для екселя - Excel8TLB.pas; либо в инете его поищи - наверняка найдется)


 
N   (2004-03-17 08:58) [4]

спасибо Sergey
я нашла обозначение цифрами - проканывает
v.range["A6:H"+(inttostr(Numb+5))].Borders[7].LineStyle := 1;
v.range["A6:H"+(inttostr(Numb+5))].Borders[7].Weight := 2;
v.range["A6:H"+(inttostr(Numb+5))].Borders[7].ColorIndex := -4105;


 
evvcom ©   (2004-03-17 10:15) [5]


> я нашла обозначение цифрами - проканывает

Все равно лучше прописать константы и использовать их. Так код легче читается. А то ведь и вовсе можно на язык машинных кодов перейти, тоже "проканает".

Инструкции типа v.range["A6:H"+(inttostr(Numb+5))].Borders[7] если вдруг используются еще и в цикле лучше присваивать вариантным переменным, и потом через них уже добираться много раз к свойствам объекта. Так будет быстрее работать, а то интерпретатор пока несколько раз разберет такую команду, уже и рак на горе засвистит.

И еще. Как написать то или иное проще всего узнать, записав в том же ёкселе или ворде макрос, нажав всего лишь кнопку "Запись макроса" потом "Останов". И все это посмотреть в редакторе VB.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.037 c
14-1079013272
Denrom
2004-03-11 16:54
2004.04.04
ИК волны (область применения)


4-1075291202
Guest_2004
2004-01-28 15:00
2004.04.04
ShowWindow(Application.Handle,SW_HIDE)


11-1058716509
Кладов
2003-07-20 19:55
2004.04.04
Версия 1.80


1-1079597795
revo
2004-03-18 11:16
2004.04.04
Про THRead


14-1079075846
Bless
2004-03-12 10:17
2004.04.04
Песня из фильма "Логово койотов"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский