Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.48 MB
Время: 0.061 c
3-79612
Saddam
2004-01-30 18:47
2004.02.25
BDE Out of memory на 200000+ записи выборки


1-80006
romeo
2004-02-13 10:55
2004.02.25
ExtCreatePen и динамичский массив с описанием типа линии


1-79946
Ученик2
2004-02-11 17:58
2004.02.25
Функция, убирающая пробелы в строке


1-79782
MadGhost
2004-02-10 23:15
2004.02.25
Че та я не пойму с TMemoryStream


1-79775
тихий вовочка
2004-02-10 23:14
2004.02.25
RichEdit и позиционирование курсора





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