Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/47: Рейтинг темы: голосов - 47, средняя оценка - 4.66
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 168
1

Переключаться между листами Excel

31.12.2014, 16:18. Показов 9780. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как можно через делфи переключаться между листами в открытом Ексель ?
Т.е. проводятся какие то вычисления, и допустим итог этих вычислений равен 6, и соответственно нужно будет переключиться на лист с именем 6. (он уже будет создан, просто нужно на него переключиться)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.12.2014, 16:18
Ответы с готовыми решениями:

Delphi и excel как работать с несколькими листами?
Как можно работать в Delphi с excel файлом, состоящим из нескольких листов? Сейчас программа...

Работа с несколькими листами книги Excel в Delphi
Доброе утро, у меня вышла загвоздка когда потребовалось работать с несколькими листами Excel книги:...

Обмен данными между листами Excel и VBA
Люди добрые помогите пожалуйста с решение данной проблемы. В макросах дуб-дубом, а степендию то...

Как можно переключаться между Формой и таблицей Excel?
т.е. вопрос в следующем: есть форма и есть таблица Excel само сабой когда запускаешь форму,...

11
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
31.12.2014, 17:20 2
artyoms, лучше это сделать через макросы на VB Excel
0
Эксперт Pascal/Delphi
4914 / 2783 / 853
Регистрация: 04.10.2012
Сообщений: 10,129
31.12.2014, 17:37 3
Цитата Сообщение от artyoms Посмотреть сообщение
Как можно через делфи переключаться между листами в открытом Ексель ?
Delphi
1
ExcelApp.ActiveWorkBook.Sheets.Item[i].Activate;
i-номер листа.
0
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 168
31.12.2014, 18:08  [ТС] 4
нет, ексель находится не внутри делфи, а отдельно запущенным приложением, чужим окном. В этом и задача.
0
Эксперт Pascal/Delphi
4914 / 2783 / 853
Регистрация: 04.10.2012
Сообщений: 10,129
31.12.2014, 18:32 5
Лучший ответ Сообщение было отмечено artyoms как решение

Решение

artyoms, тогда не создавайте новую книгу, а подключайтесь к активному экземпляру (открытой книге) Excel:

Delphi
1
2
3
4
5
var
  ExcelApp : OLEVariant;
...
ExcelApp :=GetActiveOleObject('Excel.Application');
...
Остальное по аналогии.
0
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 168
31.12.2014, 19:48  [ТС] 6
droider, всё отлично работает, разобрался, большое спасибо и с наступающим Новым годом!
0
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 168
19.08.2015, 21:46  [ТС] 7
При
Delphi
1
ExcelApp :=GetActiveOleObject('Excel.Application');
как я понял мы подключаемся к первой открытой книге. А как подключиться к книге по имени т.е. допустим с именем 'S1 - Microsoft Excel' ?
0
Эксперт Pascal/Delphi
4914 / 2783 / 853
Регистрация: 04.10.2012
Сообщений: 10,129
25.08.2015, 21:49 8
Цитата Сообщение от artyoms Посмотреть сообщение
как подключиться к книге по имени т.е. допустим с именем 'S1 - Microsoft Excel' ?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var
  ExcelApp: OLEVariant;
begin
  try
    //проверяем, нет ли активного экземпляра Excel
    ExcelApp := GetActiveOleObject('Excel.Application');
  except
    //если нет, то запускаем
    on EOLESysError do
      ExcelApp := CreateOleObject('Excel.Application');
  end;
  with ExcelApp do
  begin
     Visible := True; //показываем документ
    //Открываем книгу Excel на полный экран
      WindowState := -4137;
    //отключаем предупреждающие сообщения
      DisplayAlerts := False;
    //Открываем рабочую книгу
     WorkBooks.Open('C:\S1.xls');
    //Становимся на первый лист
     WorkSheets[1].Activate;
  end;
end;
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32955 / 21273 / 8168
Регистрация: 22.10.2011
Сообщений: 36,542
Записей в блоге: 8
25.08.2015, 21:52 9
droider, вопрос не в этом. А в том, как среди нескольких открытых документов найти именно тот, который нужен. Я уже отвечал вопрошающему: Excel - получение доступа к нескольким окрытым приложениям , но, как видно, три строки простейшего кода никак для него не осилить... Вот и надо все на блюдечке...
0
Эксперт Pascal/Delphi
4914 / 2783 / 853
Регистрация: 04.10.2012
Сообщений: 10,129
25.08.2015, 21:54 10
Цитата Сообщение от volvo Посмотреть сообщение
вопрос не в этом. А в том, как среди нескольких открытых документов найти именно тот, который нужен. Я уже отвечал вопрошающему
Не видел тему Давно не заходил. Тогда все ясно.
0
0 / 0 / 0
Регистрация: 17.12.2019
Сообщений: 1
17.12.2019, 10:32 11
добрый день!
Подскажите пож-та, как можно решить такую задачу в excel.

Нужно подсчитать количество дней отпуска, если известна начальная дата 05.01.19 и конечная дата 15.01.19, при этом формула вычитала праздничные дни, которые попадают в этот интервал, а также если в следующей строке пусто нет дат, формула проставляла ноль.

Пример:
А1 В1
1 05.01.2019 15.01.2019
2 00.00.0000 00.00.0000
3 07.03.2019 10.03.2019

Заранее спасибо!
0
Модератор
9457 / 6210 / 2419
Регистрация: 21.01.2014
Сообщений: 26,467
Записей в блоге: 3
17.12.2019, 10:48 12
EK_1234, вот какое отношение Ваш вопрос имеет к текущей теме пятилетней давности?
Создавайте свою тему и задавайте свой вопрос! Вот только Вы уверены, что она к Дельфи отношение имеет?
0
17.12.2019, 10:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2019, 10:48
Помогаю со студенческими работами здесь

Microsoft.Office.Interop.Excel.Worksheet - переключение между листами
Споткнулся на пустом месте. Начал работать с многостраничным файлом. При переключении между...

Excel: как выделить все листы, находящиеся между заданными листами?
эта команда - Sheets(Array("zayavki", "list3")).Select - выделяет только обозначенные листы в...

Ошибка при переносе значений между книгами и листами в Microsoft Excel
Всем доброго вечера! У меня вопрос не трудный (я так думаю), но всю голову сломал не могу понять...

Работа с листами в Excel
В листе есть 3 колонки. Допустим R3C1,R3C2,R3C3 Можно ли удалить их как-нибудь удалить 1 строчкой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru