Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2012, 12:09   #1
Genas
Пользователь
 
Регистрация: 24.06.2008
Сообщений: 34
По умолчанию Delphi и Excel

Не получается скрыть строку в Экселе через Делфи!!
Genas вне форума Ответить с цитированием
Старый 11.06.2012, 12:10   #2
Genas
Пользователь
 
Регистрация: 24.06.2008
Сообщений: 34
По умолчанию

пробовал делать так!
msExcel.WorkSheets.Rows[I].hidden:=true;
Genas вне форума Ответить с цитированием
Старый 11.06.2012, 12:51   #3
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Наводящий вопрос: на каком листе расположена скрываемая строка?
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 11.06.2012, 12:57   #4
Genas
Пользователь
 
Регистрация: 24.06.2008
Сообщений: 34
По умолчанию

чуть выше в коде есть MsExcel.worksheets.item[3].select;

пробую так еще тоже лажа!
инвалид вариант оперейшен!!

msExcel.WorkBooks[1].WorkSheets[3].Rows[i].hidden:=true;
Genas вне форума Ответить с цитированием
Старый 11.06.2012, 13:11   #5
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Цитата:
чуть выше в коде есть MsExcel.worksheets.item[3].select;
Ну и что? Ты все равно обращаешься к неведомому msExcel.WorkSheets.Rows[I], а не к Selection.

Цитата:
msExcel.WorkBooks[1].WorkSheets[3].Rows[i].hidden:=true;
Есть уверенность, что в рабочей книге имеется три листа?

Лучше - вот так:
Код:
var XL, WB, WS: Variant;
begin
   XL := CrealeOleObject('Excel.Application');
   WB := XL.Workbooks.Add();
   WS := WB.WorkSheets.Add();
   WS.Rows[1].Hidden := True;
Ну, или как-то по аналогии, в соответствии с твоей задачей. Основная идея - побольше используй переменные, значения которых явно указываешь сам. Так и код будет читабельнее, и отлаживать проще, и уверенности в действиях побольше.

P.S. Для получения более понятных сообщений рекомендую юзать конструкцию
Код:
try
   { Какие-то действия, с тем же Excel, к примеру }
except
   on E:Exception do begin
      ShowMessage(E.Message);
      { Какие-то действия, например - высвобождение переменных }
   end;
end;
Так ты получишь гораздо больше информации.
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 11.06.2012, 14:42   #6
Genas
Пользователь
 
Регистрация: 24.06.2008
Сообщений: 34
По умолчанию

не получается!! какая то загвоздка с Rows[1].Hidden := True;
то что ты по перемынным расписал, это понятно!! это я пробовал!! все идет пока до Hidden не до ходит!! может что то с оператором не так?? или не правелное построение команды!! ??
Genas вне форума Ответить с цитированием
Старый 11.06.2012, 14:43   #7
Genas
Пользователь
 
Регистрация: 24.06.2008
Сообщений: 34
По умолчанию

может надо строку выделять как то??
типа Rows[1].Select ??
Genas вне форума Ответить с цитированием
Старый 11.06.2012, 15:36   #8
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Не надо.
В try except завернул? Что сообщается?
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 11.06.2012, 16:45   #9
Genas
Пользователь
 
Регистрация: 24.06.2008
Сообщений: 34
По умолчанию

Завернуть я завернул!! но эффект почти тот же!! Выкидывает ошибку как раньше а потом еще в отдельном окне благодаря ShowMessage(E.Message);
Genas вне форума Ответить с цитированием
Старый 11.06.2012, 17:01   #10
Genas
Пользователь
 
Регистрация: 24.06.2008
Сообщений: 34
По умолчанию

var msExcel, WB, WS: Variant; у меня объявлено глобально
begin
// msExcel := CrealeOleObject('Excel.Application' ); в начале программы еще присваевается
WB := msExcel.Workbooks.Add(); // "add" на что заменить у меня уже открыта книга
WS := WB.WorkSheets.Add(); //указан лист MsExcel.Sheets['отчет'].select; адд надо тоже заменить! только вот на что??
WS.Rows[1].Hidden := True;

Последний раз редактировалось Genas; 11.06.2012 в 17:06.
Genas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из Delphi в Excel Ky3Heu, Общие вопросы Delphi 4 17.10.2011 09:40
Delphi Excel (сохранение записи в Excel) Кас Алина Общие вопросы Delphi 4 28.05.2010 09:17
как при импорте из Excel в delphi узнать сколько заполненных строк в книге Excel?чтобы организовать цикл betirsolt БД в Delphi 1 17.01.2010 18:51
Delphi ->Excel->График по таблице->Delphi Avalonix БД в Delphi 2 30.10.2008 14:04
Delphi+Excel Suall БД в Delphi 0 30.04.2007 07:37