Форум: "Основная";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
ВнизКак программно скрыть столбцы в 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.038 c