Главная страница
    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.47 MB
Время: 0.038 c
9-79532
HoloCaust
2003-08-04 23:05
2004.02.25
Оптимальный FPS для игры - 2Д стрелялка, вид сбоку


3-79579
venus
2004-01-29 11:45
2004.02.25
Сортировка записей в БД


3-79636
gedd
2004-01-31 18:08
2004.02.25
Разделение полей в тектовой базе


1-79798
Aks
2004-02-11 14:26
2004.02.25
trouble with Excel


9-79540
G A M E R
2003-08-10 23:31
2004.02.25
Вопрос по освещению в OpenGL





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