![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Atreides |
![]()
Сообщение
#1
|
![]() Ветеран Броуновского Движения ![]() ![]() ![]() Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Уважаемые, подскажите, как выполнить проход по столбцу (столбец всего один) в эксельном файлике и при нахождении подряд одинаковых значений объединить их в одну ячейку? И как можно определить номер последней строки с записью. Или при нахождение значения "ИТОГО" закрасить сроку от итого до последнего столбца. Все данные на одном первом листе.
Сообщение отредактировано: Atreides - 25.10.2011 22:23 Прикрепленные файлы ![]() -------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
![]() ![]() |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Как-то вот так:
procedure TForm1.Button1Click(Sender: TObject); |
Atreides |
![]()
Сообщение
#3
|
![]() Ветеран Броуновского Движения ![]() ![]() ![]() Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Огромное спасибо!
Еще вопросец возник, как сделать выделение ячеек бордером, но только по контор выделенной области, без внутренних выделений? А то обычным бордером он все перекладины делает жирным. -------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
IUnknown |
![]()
Сообщение
#4
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
XLApp.Sheets[1].Range[ 'F2:G7' ].Select; // Тут выберешь нужный Range, который надо очертить |
Atreides |
![]()
Сообщение
#5
|
![]() Ветеран Броуновского Движения ![]() ![]() ![]() Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
А если нужно использовать только нижнюю толстую линию выделения под итогами. И толстую правую линию выделения в каждом столбце данных. Пробовал сделать, по ошибке вылетаю. Кинул пример для наглядности.
Код begin XLApp.DisplayAlerts := False; //отмена ругани экселя iFirstRow := 10; // начало поиска repeat CurrValue := XLApp.Cells.Item[iFirstRow, 1].Value; iCurrentRow := iFirstRow + 1; while (CurrValue <> Unassigned) and (XLApp.Cells.Item[iCurrentRow, 1].Value = CurrValue) do begin Inc(iCurrentRow); end; //закрашивание строк "итого" XLApp.Range[Format('B%d', [iCurrentRow-1]), GetCellAddress(ColCount, iCurrentRow-1)].Interior.Color:=rgb(255,255,153); //XLApp.Range[Format('B%d', [iCurrentRow-1]), GetCellAddress(ColCount, iCurrentRow-1)].Borders.xlEdgeBottom.LineStyle := xlContinuous; //XLApp.Range[Format('B%d', [iCurrentRow-1]), GetCellAddress(ColCount, iCurrentRow-1)].Borders.xlEdgeBottom.Weight := xlMedium; //Report.Range[Format('B%d', [iCurrentRow-1]), GetCellAddress(ColCount, iCurrentRow-1)].Borders.Weight := xlMedium; //группировка значений XLApp.Range[ Format('A%d:A%d', [iFirstRow, iCurrentRow - 1]) ].MergeCells := True; XLApp.Range[ Format('A%d:A%d', [iFirstRow, iFirstRow]) ].HorizontalAlignment := xlCenter; XLApp.Range[ Format('A%d:A%d', [iFirstRow, iFirstRow]) ].VerticalAlignment := xlCenter; iFirstRow := iCurrentRow; until CurrValue = Unassigned; end; Прикрепленные файлы ![]() -------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
IUnknown |
![]()
Сообщение
#6
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
И на фиг мне этот пример, если ты какую-то левую GetCellAddress используешь?
Тысячу раз говорено: надо - не мне, а задающему вопрос. И его задача - привести код, который можно откомпилировать и запустить. Не компилируется - тут же уходит в мусорку... Твой код НЕ КОМПИЛИРУЕТСЯ у меня на машине. Надо - присоединяй реализацию функции. Для того, чтобы ИСПРАВИТЬ ошибку, надо ее УВИДЕТЬ. Я - не вижу, где именно происходит ошибка, и что за ошибка - тоже... P.S. Что такое ColCount - я тоже должен ДОГАДАТЬСЯ? Где и как оно описано? Какое значение на момент входа в процедуру оно содержит? Сообщение отредактировано: IUnknown - 26.10.2011 16:15 |
![]() ![]() |
![]() |
Текстовая версия | 22.06.2025 9:28 |