Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.25;
Скачать: CL | DM;

Вниз

Как программно скрыть столбцы в Excel ?   Найти похожие ветки 

 
Excel   (2004-02-11 10:18) [0]

Вопрос: как программно из Делфей скрыть столбцы в Excel-файле?
Вся сложность в том, что к столбцам нельзя обращаться по номерам, как к строкам. Или если можно, то скажите как.
Пример скрывания строк с 20 по 30 в Excel:
Ex.Rows["20:30"].Select;
Ex.Selection.EntireRow.Hidden := True;

Буду очень благодарен, если и для столбцов напишите что-нибудь подобное.


 
jack128 ©   (2004-02-11 10:20) [1]

Можно попробовать обратиться по буквам ;-)


 
Excel   (2004-02-11 10:36) [2]

мне просто при формировании отчета надо скрывать 4 столбца через каждые 3 в цикле...и как к ним по буквам то обращаться???


 
jack128 ©   (2004-02-11 10:49) [3]

Sub Макрос1()
"
" Макрос1 Макрос
" Макрос записан 11.02.2004 (Евгений)
"

"
Columns("A:C").Select
Selection.EntireColumn.Hidden = True
End Sub


 
Построение дерева   (2004-02-11 11:02) [4]

через буквы и так ясно что можно, но мне надо только через цифры к столбцам обращаться.


 
Плохиш   (2004-02-11 11:08) [5]


> Построение дерева (11.02.04 11:02) [4]
> через буквы и так ясно что можно, но мне надо только через
> цифры к столбцам обращаться.

Ах какие такие крутые желания :-|
А цифры в буквы переводить всё ещё не научились?


 
Excel   (2004-02-11 11:12) [6]

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


 
jack128 ©   (2004-02-11 11:19) [7]

что нить врод этого..
function ColNumberToColName(ColNumber: Word): string;
const
CharCount = ord("Z") - ord("A") + 1;
begin
if ColNumber <= CharCount then
Result := Char(ord("A") + ColNumber - 1)
else
Result := Char(ord("A") + ColNumber div CharCount - 1) + Char(ord("A") + ColNumber mod CharCount - 1)
end


 
Excel   (2004-02-11 11:26) [8]

jack128 - нет, только через цифры...команда должна быть чем-то похожа на эту:
WorkBook.WorkSheets[1].Range[WorkBook.WorkSheets[1].Cells[y1, x1], WorkBook.WorkSheets[1].Cells[y2, x2]];
(она объединяет ячейки....вначале тоже думал, что через цифры нельзя так сделать, а оказывается можно, также и со столбцами должно быть)


 
3APA3A ©   (2004-02-11 11:32) [9]

Да блин... в том же объекте, где ты пишешь Ex.Rows также есть свойство Columns[] к которому я всегда обращаюсь через цифры, то есть Ex.Columns[1],Ex.Columns[2] и т.д.


 
jack128 ©   (2004-02-11 11:57) [10]

Ну может такой код прокатит?
RangeName: string;
for i := 1 to 50 do
CelRangeName := ColNumberToColName(i*7) + ":" + ColNumberToColName(i*7 + 2) + ",";

SetLength(RangeName, Length(RangeName) - 1);
Ex.Range(RangeName).EntireColumn.Hidden = True;


 
olookin ©   (2004-02-11 12:04) [11]

Через цифры еще как можно:

Excel.Workbooks[k].Sheets[j].Columns[m].Width:=0;


 
Excel   (2004-02-11 12:33) [12]

olookin: а как к примеру с m по n выбрать?


 
olookin ©   (2004-02-11 13:12) [13]

Так как я написал - нельзя изменять ширину столбцов. Надо так:

Excel.Workbooks[BookIndex].Sheets[SheetIndex].Columns[1].ColumnWidth:=5;

С m по n разумеется в цикле

for i :=1 to 10 //начинать всегда с 1 или большего значения i
Excel.Workbooks[BookIndex].Sheets[SheetIndex].Columns[i].ColumnWidth:=
MyColumnValue;


 
olookin ©   (2004-02-11 13:30) [14]

Или так, т.е. без цикла, т.е. быстрее

V: Variant;
V:=Excel.Workbooks[BookIndex].Sheets[SheetIndex];
//поменяет ширину с первого по 5-й столбец
V.Range[V.Cells[1,1],V.Cells[1,5]].ColumnWidth:=5;

Или это: скроет с первого по пятый столбец
V:=Excel.Workbooks[BookIndex].Sheets[SheetIndex];
V.Range[V.Cells[1,1],V.Cells[1,5]].EntireColumn.Hidden:=true;


 
Построение дерева   (2004-02-12 05:26) [15]

olookin спасибо, все работает...



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

Текущий архив: 2004.02.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
14-80228
tvm
2004-02-04 23:28
2004.02.25
я только учусь


14-80160
Ig
2004-01-30 19:56
2004.02.25
Что за вирус ходит, бродит?


9-79536
NailMan
2003-08-13 16:17
2004.02.25
Непонятные глюки со спрайтами и Delphi


11-79687
grumbler
2003-06-04 21:49
2004.02.25
Хочу просто русский проект...


14-80298
Igor_thief
2004-02-03 15:46
2004.02.25
Динамические масивы