Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Общетехнические вопросы

Общетехнические вопросы Общие вопросы аналоговой и цифровой электроники.

Ответ
 
Опции темы Опции просмотра
Старый 01.03.2016, 18:43   #1
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 41
Сообщений: 3,246
Вес репутации: 3684/116
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Excel, именованный диапазон ячеек :-)

Ищу в инете, всё как-то мутно :-(.
Может здесь кто-нибудь знает.
В экселе задал имя диапазону ячеек, к примеру "Диапазон"=C5:C15.
Теперь хочу внутри этого диапазона через имя достучатся до пятой сверху ячейки (в координатах экселя это будет C10).
Хочется именно через имя диапазона, что-то типа "Диапазон[5]" для использования данных в других ячейках.
Это возможно? Или только можно юзать весь диапазон одновременно?

PS предупреждая вопрос "а зачем тебе это нужно". В данное время "массив" с данным расположен по одному диапазону, потом скорее всего переедет в другие адреса. Работать с ним нужно с других страниц книги, чтобы не было привязки к определенным адресам задумал именованный диапазон.
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 01.03.2016, 19:11   #2
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,750
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Excel, именованный диапазон ячеек :-)

Цитата:
Сообщение от IceS Посмотреть сообщение
Ищу в инете, всё как-то мутно :-(.
Может здесь кто-нибудь знает.
В экселе задал имя диапазону ячеек, к примеру "Диапазон"=C5:C15.
Теперь хочу внутри этого диапазона через имя достучатся до пятой сверху ячейки (в координатах экселя это будет C10).
Хочется именно через имя диапазона, что-то типа "Диапазон[5]" для использования данных в других ячейках.
Это возможно? Или только можно юзать весь диапазон одновременно?
Если я правильно понимаю, то требуется просто работать с упорядоченными данными? Мне самому предстоит освоить работу с Excel на C#.

Как сделать в самом Exсel не знаю, но знаю, что MS Excel является COM-совместимым объектом, т.е. предполагалось, что с документами можно будет работать на COM-совместимых языках (VBScript и д.р.), но это раньше так было, когда технология COM была единственной, а теперь с MS Excel удобно работать из .NET приложений на том же C#, VB.
Простенькое приложение позволяет создавать объект (приложение MS Excel) и работать с ним, обращаться к ячейкам.

Вот код (первый попавшийся из интернета, проверено, работает) обработчика клика кнопки, создает документ и заполняет нужные ячейки текстом). Может на C# будет проще работать? Можно вообще открыть документ, найти именованный столбик, обратиться к его элементам.
Код:
 private void button1_Click(object sender, EventArgs e)
{
    Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
    Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;
    Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
    //Книга.
    ObjWorkBook = ObjExcel.Workbooks.Add(System.Reflection.Missing.Value);
    //Таблица.
    ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];

    //Значения [y - строка,x - столбец]
    ObjWorkSheet.Cells[3, 1] = textBox1.Text;
    ObjWorkSheet.Cells[3, 2] = textBox2.Text;
    ObjWorkSheet.Cells[3, 3] = textBox3.Text;
    
    //Вызываем нашу созданную эксельку.
    ObjExcel.Visible = true;
    ObjExcel.UserControl = true;
}
__________________
Прогресс неизбежен.

Последний раз редактировалось Pridnya; 01.03.2016 в 19:21.
Pridnya вне форума   Ответить с цитированием
Старый 01.03.2016, 19:17   #3
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 41
Сообщений: 3,246
Вес репутации: 3684/116
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Excel, именованный диапазон ячеек :-)

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Как сделать в самом Exсel не знаю, но знаю, что MS Excel является COM-совместимым объектом, т.е. предполагалось, что с документами можно будет работать на COM-совместимых языках (VBScript и д.р.), но это раньше так было, когда технология COM была единственной, а теперь с MS Excel удобно работать из .NET приложений на том же C#, VB.
Простенькое приложение позволяет создавать объект (приложение MS Excel) и работать с ним обращаться к ячейкам.
Мне внешнее приложение не нужно.
Да и внутренние макросы тоже излишни.
На VBA полно примеров:
Код:
Для указания конкретной ячейки внутри именованного объекта Range можно использовать следующий оператор: xlsProd.Range("WorkRange").Cells(1,1)

Мне это не подходит. Нужно именно средствами самого экселя, без макросов и тому подобного програмирования. В виде формул самого экселя.
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 01.03.2016, 19:24   #4
Guaho
Senior Member
 
Аватар для Guaho
 
Регистрация: 28.06.2013
Возраст: 48
Сообщений: 740
Вес репутации: 1674/48
Guaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant future
По умолчанию Re: Excel, именованный диапазон ячеек :-)

Может я недопонял суть задачи, но: если массив с данными будет располагаться по одному диапазону, т.е. всегда на одном месте, и нужно на него ссылаться, можно ведь использовать обычную ссылку вида "Лист3!Е5". Что касается вопроса об описанной хитрой адресации, тут не подскажу, не сталкивался с таким. Хотя вот сейчас посмотрел, не сильно вникая - что-то очень похожее есть в функциях, в разделе "Ссылки и массивы". Если поковыряться - может и возможно найти.

Последний раз редактировалось Guaho; 01.03.2016 в 19:30.
Guaho вне форума   Ответить с цитированием
Старый 01.03.2016, 19:26   #5
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,750
Вес репутации: 4545/133
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Excel, именованный диапазон ячеек :-)

Цитата:
Сообщение от IceS Посмотреть сообщение
Мне внешнее приложение не нужно.
Да и внутренние макросы тоже излишни.
На VBA полно примеров:
Код:
Для указания конкретной ячейки внутри именованного объекта Range можно использовать следующий оператор: xlsProd.Range("WorkRange").Cells(1,1)

Мне это не подходит. Нужно именно средствами самого экселя, без макросов и тому подобного програмирования. В виде формул самого экселя.
А почему без макросов, без внешнего приложения? Неужели на целевой машине нельзя будет запускать макросы? Вообще, грех работать с софтом Microsoft и отказываться от технологий Microsoft. Я ощутил преимущества того же Excel перед LibreOffice Calc, когда:
a) понадобилась поддержка макросов (в Libre не работало);
б) узнал о COM-совместимости Excel.
Ладно, успехов!
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 01.03.2016, 19:29   #6
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 41
Сообщений: 3,246
Вес репутации: 3684/116
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Excel, именованный диапазон ячеек :-)

Цитата:
Сообщение от Guaho Посмотреть сообщение
Может я недопонял суть задачи, но: если массив с данными будет располагаться по одному диапазону, т.е. всегда на одном месте, и нужно на него ссылаться, можно ведь использовать обычную ссылку вида "Лист3!Е5". Что касается вопроса об описанной хитрой адресации, тут не подскажу, не сталкивался с таким.
В моем случае - я потом буду долго вспоминать что такое E5, я тогда лучше ячейке имя задам внятное "Частотная_точка_1".
Сейчас она конечно будет в этой точке, а потом может переехать (может я себе лишнего накручиваю, но задался вопросом, а ответа на него прямого нигде нет :-( ).
Хотелось иметь дело с массивом, но есть только упоминание работы из VBA :-(, а средствами самого экселя "Именованный диапазон" используют только в командах работающих с диапазонами "СУММ(Диапазон)".
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 01.03.2016, 19:30   #7
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 41
Сообщений: 3,246
Вес репутации: 3684/116
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Excel, именованный диапазон ячеек :-)

Цитата:
Сообщение от Pridnya Посмотреть сообщение
А почему без макросов, без внешнего приложения? Неужели на целевой машине нельзя будет запускать макросы? Вообще, грех работать с софтом Microsoft и отказываться от технологий Microsoft. Я ощутил преимущества того же Excel перед LibreOffice Calc, когда:
a) понадобилась поддержка макросов (в Libre не работало);
б) узнал о COM-совместимости Excel.
Ладно, успехов!
Поверь. В моей задаче это все излишнее.
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 01.03.2016, 20:39   #8
Marat
Senior Member
 
Аватар для Marat
 
Регистрация: 27.03.2007
Адрес: Минск
Сообщений: 837
Вес репутации: 853/64
Marat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to beholdMarat is a splendid one to behold
По умолчанию Re: Excel, именованный диапазон ячеек :-)

Когда-то очень давно я заморочился на эксель...
Сейчас уже не вспомню всего, но посмотри - может что-то подойдёт:
Основные формулы на листах Работа_(2 аналогичны друг-дгугу) и Список.
Остальные листы в помощь.

(Кнопки с макросами не нажимай - хотя страшного ничего не будет - там попытки редактирования файла, скорее всего вывалится ошибка, что "такого файла нет". )
Вложения
Тип файла: zip Конфигуратор ПК.zip (99.0 Кб, 1 просмотров)
__________________
RTFM.....и будет вам счастье
Marat вне форума   Ответить с цитированием
Старый 01.03.2016, 21:41   #9
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,536
Вес репутации: 4887/117
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: Excel, именованный диапазон ячеек :-)

Цитата:
Сообщение от IceS Посмотреть сообщение
Ищу в инете, всё как-то мутно :-(.
Может здесь кто-нибудь знает.
В экселе задал имя диапазону ячеек, к примеру "Диапазон"=C5:C15.
Теперь хочу внутри этого диапазона через имя достучатся до пятой сверху ячейки (в координатах экселя это будет C10).
Хочется именно через имя диапазона, что-то типа "Диапазон[5]" для использования данных в других ячейках.
Это возможно? Или только можно юзать весь диапазон одновременно?

PS предупреждая вопрос "а зачем тебе это нужно". В данное время "массив" с данным расположен по одному диапазону, потом скорее всего переедет в другие адреса. Работать с ним нужно с других страниц книги, чтобы не было привязки к определенным адресам задумал именованный диапазон.
Совпадение? Не думаю (c)
http://www.yaplakal.com/forum3/topic1327087.html
ampersant вне форума   Ответить с цитированием
Старый 01.03.2016, 21:51   #10
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 41
Сообщений: 3,246
Вес репутации: 3684/116
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Excel, именованный диапазон ячеек :-)

Цитата:
Сообщение от ampersant Посмотреть сообщение
Совпадение? Не думаю (c)
http://www.yaplakal.com/forum3/topic1327087.html
Гы, это не моё :-).
PS В принципе я выкрутился по старинке (оно "не красиво", плохо перемещабельно, но вроде работает). Но все-таки интересно можно ли сделать то, что описано в 1м посте?
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 02.03.2016, 10:59   #11
yeskela
Senior Member
 
Аватар для yeskela
 
Регистрация: 28.01.2010
Адрес: Новочеркасск
Возраст: 37
Сообщений: 1,129
Вес репутации: 3762/85
yeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond repute
По умолчанию Re: Excel, именованный диапазон ячеек :-)

Цитата:
Сообщение от IceS Посмотреть сообщение
В экселе задал имя диапазону ячеек, к примеру "Диапазон"=C5:C15.
Теперь хочу внутри этого диапазона через имя достучатся до пятой сверху ячейки (в координатах экселя это будет C10).
Хочется именно через имя диапазона, что-то типа "Диапазон[5]" для использования данных в других ячейках.
В LibreOffice это =INDEX(ИмяДиапазона;строка[;столбец])

В MSOffice, судя по гуглю, что-то похожее.
__________________
Отсутствие доступа в интернет с рабочего места очень замедляет работу. Наличие - полностью парализует её.
yeskela вне форума   Ответить с цитированием
Старый 02.03.2016, 12:03   #12
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 41
Сообщений: 3,246
Вес репутации: 3684/116
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Excel, именованный диапазон ячеек :-)

Цитата:
Сообщение от yeskela Посмотреть сообщение
В LibreOffice это =INDEX(ИмяДиапазона;строка[;столбец])

В MSOffice, судя по гуглю, что-то похожее.
Во! Действительно! То, что искал , спасибо.
В моей версии екселя это звучит как:
Код:
=ИНДЕКС(именованный_диапазон;<строка>[;<столбец>])
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


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


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot