Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.09.2010, 19:29
ColorDb ColorDb вне форума
Новичок
 
Регистрация: 27.01.2009
Сообщения: 67
Репутация: 10
По умолчанию Переключаться между листами!

Добрый день программерам.

Подскажите как переключаться между листами?
В моем идиётском учебнике этого нет. Измучался.
То есть я заношу значения в какие то ячейки потом нажимаю button и чтоб эксель перескочил на другой лист и можно было туда данные вносить..
Чет никак.
Ну и новые создавать..
Ответить с цитированием
  #2  
Старый 10.09.2010, 21:18
ColorDb ColorDb вне форума
Новичок
 
Регистрация: 27.01.2009
Сообщения: 67
Репутация: 10
По умолчанию

Есть у кого толковая книга по программированию excel?
Везде не до писывают недоговаривают. Мне в подробностях.
Ответить с цитированием
  #3  
Старый 10.09.2010, 21:40
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

В большинстве случаев помогает простой финт. Запустить запись макроса в экселе, понажимать нужные кнопки,элементы и посмотреть что эксель наваял при этом в макросе. Аналогичные свойства и объекты вызвать из дельфи.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 10.09.2010, 21:45
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

А "стандартный" способ не подойдет ?
Типа :
Код:
//Сделать лист Excel активным
function Excel_SetListActive(Excel : variant; NumList : integer) :variant;
begin
  Result:=UnAssigned;
  if not VarIsEmpty(Excel) then begin
     if NumList>0 then begin
        if NumList<=Excel.WorkSheets.Count then begin
           Result:=Excel.ActiveWorkBook.WorkSheets[NumList];
           Result.Select;
        end;
     end;
  end;
end;

//Получить ссылку на лист Excel по номеру 
function Excel_GetList(Excel : Variant; NumList : integer) : Variant;
begin
  Result:=UnAssigned;
  if not VarIsEmpty(Excel) then begin
     if (NumList>0) and  (NumList<=Excel.ActiveWorkBook.WorkSheets.Count) then begin
        Result:=Excel.ActiveWorkBook.WorkSheets[NumList];
     end;
  end;
end;

//Добавить лист в книгу Excel
function Excel_AddLis(Excel : Variant) : Variant;
begin
  Result:=UnAssigned;
  if not VarIsEmpty(Excel) then begin
     Result:=Excel.ActiveWorkBook.WorkSheets.Add;
  end;
end;


Последний раз редактировалось roamer, 10.09.2010 в 21:48.
Ответить с цитированием
  #5  
Старый 10.09.2010, 21:56
ColorDb ColorDb вне форума
Новичок
 
Регистрация: 27.01.2009
Сообщения: 67
Репутация: 10
По умолчанию

Вот попробуем. Не знал такой способ.
Ответить с цитированием
  #6  
Старый 10.09.2010, 22:09
ColorDb ColorDb вне форума
Новичок
 
Регистрация: 27.01.2009
Сообщения: 67
Репутация: 10
По умолчанию

Только как этим пользоваться?
Что такое Excel а что такое Numllist?
Numlist это я понимаю номер листа.
С какого начинается с 0 или с 1?

То есть можно написать так.
Excel_SetListActive(1,2);

Перейдешь на второй лист?
Ответить с цитированием
  #7  
Старый 10.09.2010, 22:18
ColorDb ColorDb вне форума
Новичок
 
Регистрация: 27.01.2009
Сообщения: 67
Репутация: 10
По умолчанию

Я так пробовал.
ExlPrint.Sheets.item('Лист2').Select;
Пишет член гурппы не найжен.
Ответить с цитированием
  #8  
Старый 10.09.2010, 22:58
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

>Что такое Excel

--- Переменная, где хранится ссылка на сам Excel (как OLE Automation Server).


>а что такое Numllist?
>Numlist это я понимаю номер листа.

--- Да.


>С какого начинается с 0 или с 1?

--- С единицы.


>То есть можно написать так.
>Excel_SetListActive(1,2);
>Перейдешь на второй лист?

--- Да, но 1-й параметр - это ссылка на Excel.




Пользоваться примерно так :
Код:
function Excel_Open(YesVisible,YesAddWorkBooks : byte) : Variant;
begin
  Result := UnAssigned;
  Result:=CreateOleObject('Excel.Application');
  Result.Visible:=YesVisible;
  if YesAddWorkBooks>0 then begin
     Result.Workbooks.Add(); //добавить рабочую книгу
  end;
end;
  
  
function Excel_OpenFile(fn : string) : Variant;
//Открыть файл Excel
begin
  Result:=UnAssigned;
  fn:=Trim(fn);
  if length(fn)>0 then begin
     if FileExists(fn) then begin
        Result:=Excel_Open(1,0);
        if not VarIsEmpty(Result) then begin
           Result.WorkBooks.Open(fn);
        end;
     end;
  end;
end;


Код:
Var
  ListExcel, Excel : variant;

begin
  Excel := Excel_OpenFile('C:\123.xls');
  ListExcel := UnAssigned;                                  
  if not VarIsEmpty(Excel) then begin
     ListExcel := Excel_GetList(Excel,2);  //получаем ссылку на 2-й лист                                                                      
     if not VarIsEmpty(ListExcel) then begin //проверяем ссылку на корректность
        ListExcel := Excel_SetListActive(Excel,2); //делаем лист-2 активным                                                       
     end
     else begin
        ShowMessage('Ошибка. Лист N 2 не существует (может быть)');
        ListExcel := Excel_AddList(Excel); //добавляем лист                                 
        if not VarIsEmpty(ListExcel) then begin //проверяем ссылку на корректность
           ListExcel := Excel_SetListActive(Excel,2); //делаем новый лист активным                                                       
        end
        else begin
           ShowMessage('Ошибка. Новый Лист не добавлен');
        end;            
     end;            
  end
  else begin
     ShowMessage('Ошибка при загрузке файла '+fn);                            
  end;            
end;

Последний раз редактировалось roamer, 10.09.2010 в 23:15.
Ответить с цитированием
  #9  
Старый 11.09.2010, 23:49
ColorDb ColorDb вне форума
Новичок
 
Регистрация: 27.01.2009
Сообщения: 67
Репутация: 10
По умолчанию

Благодарю! Супер!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:41.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter