Главная страница
    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.057 c
6-1074786599
VAN
2004-01-22 18:49
2004.04.04
ПО на компьтере в сети!


1-1079432613
MIKL_b
2004-03-16 13:23
2004.04.04
Потоки не пашут паролельно! По очереди они...


3-1078389726
Laymer
2004-03-04 11:42
2004.04.04
Access


1-1079272282
Жорик
2004-03-14 16:51
2004.04.04
Как сделать форму активной?


7-1074492371
DimChan
2004-01-19 09:06
2004.04.04
Modem





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский