Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Excel перебирая коллекцию примечаний на листе получать адрес - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Excel перебирая коллекцию примечаний на листе получать адрес
Gerasimovaol Дата: Понедельник, 12.08.2013, 12:48 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Добрый день!

Из 1С 7.7 обращаемся к Excel.
Есть диапазон ячеек, где одни заполнены значениями, другие нет. В отдельных
ячейках (не во всех) есть примечания.[b]
Перебираем коллекцию примечаний на конкретном листе.
Как, получив по номеру примечание в EXCEL, получить значение ячейки.???

Код в 1С 7.7
[vba]
Код
//Инициализация базовых объектов Excel.Начало
xlApp=CreateObject("Excel.Application");
xlBook=xlApp.Workbooks.Open(ИмяФайлаВосстановить);

СпЗнЛисты=СоздатьОбъект("СписокЗначений");
Для СчетчикЛистов=1 По xlBook.Worksheets.Count() Цикл
СпЗнЛисты.ДобавитьЗначение(СчетчикЛистов,xlBook.Worksheets(СчетчикЛистов).Name);
КонецЦикла;//Для СчетчикЛистов=1 По xlBook.Worksheets.Count() Цикл
НомерЛиста=0;
СпЗнЛисты.ВыбратьЗначение(НомерЛиста,"Выбор листа книги.",,,0);
Если НомерЛиста=0 Тогда
xlBook.Close();
xlApp.Quit();
КонецЕсли;//Если НомерЛиста=0 Тогда
xlSheet=xlBook.Worksheets(НомерЛиста);
Кол = xlSheet.Comments.Count;
ВсегоКол = Кол;
Для ш=1 по Кол Цикл
Стр = xlSheet.Comments(ш).Text();
сообщить(Стр);
КонецЦикла;
xlBook.Close();
xlApp.Quit();
[/vba]

Заранее спасибо!
К сообщению приложен файл: .3-2.rar (38.0 Kb)


Сообщение отредактировал Gerasimovaol - Понедельник, 12.08.2013, 12:57
 
Ответить
СообщениеДобрый день!

Из 1С 7.7 обращаемся к Excel.
Есть диапазон ячеек, где одни заполнены значениями, другие нет. В отдельных
ячейках (не во всех) есть примечания.[b]
Перебираем коллекцию примечаний на конкретном листе.
Как, получив по номеру примечание в EXCEL, получить значение ячейки.???

Код в 1С 7.7
[vba]
Код
//Инициализация базовых объектов Excel.Начало
xlApp=CreateObject("Excel.Application");
xlBook=xlApp.Workbooks.Open(ИмяФайлаВосстановить);

СпЗнЛисты=СоздатьОбъект("СписокЗначений");
Для СчетчикЛистов=1 По xlBook.Worksheets.Count() Цикл
СпЗнЛисты.ДобавитьЗначение(СчетчикЛистов,xlBook.Worksheets(СчетчикЛистов).Name);
КонецЦикла;//Для СчетчикЛистов=1 По xlBook.Worksheets.Count() Цикл
НомерЛиста=0;
СпЗнЛисты.ВыбратьЗначение(НомерЛиста,"Выбор листа книги.",,,0);
Если НомерЛиста=0 Тогда
xlBook.Close();
xlApp.Quit();
КонецЕсли;//Если НомерЛиста=0 Тогда
xlSheet=xlBook.Worksheets(НомерЛиста);
Кол = xlSheet.Comments.Count;
ВсегоКол = Кол;
Для ш=1 по Кол Цикл
Стр = xlSheet.Comments(ш).Text();
сообщить(Стр);
КонецЦикла;
xlBook.Close();
xlApp.Quit();
[/vba]

Заранее спасибо!

Автор - Gerasimovaol
Дата добавления - 12.08.2013 в 12:48
SkyPro Дата: Понедельник, 12.08.2013, 13:46 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Вот такой макрос посмотрите.
Предварительно добавте лист "comments"

[vba]
Код
Sub comm()
On Error Resume Next
Dim rCell As Range
For Each rCell In ActiveSheet.UsedRange
If Not rCell.Comment Is Nothing Then
     Sheets("comments").[a65536].End(xlUp)(2).Formula = rCell.Value
End If
Next
End Sub
[/vba]


skypro1111@gmail.com
 
Ответить
СообщениеВот такой макрос посмотрите.
Предварительно добавте лист "comments"

[vba]
Код
Sub comm()
On Error Resume Next
Dim rCell As Range
For Each rCell In ActiveSheet.UsedRange
If Not rCell.Comment Is Nothing Then
     Sheets("comments").[a65536].End(xlUp)(2).Formula = rCell.Value
End If
Next
End Sub
[/vba]

Автор - SkyPro
Дата добавления - 12.08.2013 в 13:46
Poltava Дата: Понедельник, 12.08.2013, 16:15 | Сообщение № 3
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Адрес ячейки можно получить с помощью следующей конструкции.
[vba]
Код
АдресКоментария = xlSheet.Comments(ш).Parent.Address(0, 0)
[/vba]Просто добавьте эту строчку в ваш цикл.

Ув. SkyPro, мне не совсем понятно как Ваш макрос должен помочь ТС?


Сообщение отредактировал Poltava - Понедельник, 12.08.2013, 16:16
 
Ответить
СообщениеАдрес ячейки можно получить с помощью следующей конструкции.
[vba]
Код
АдресКоментария = xlSheet.Comments(ш).Parent.Address(0, 0)
[/vba]Просто добавьте эту строчку в ваш цикл.

Ув. SkyPro, мне не совсем понятно как Ваш макрос должен помочь ТС?

Автор - Poltava
Дата добавления - 12.08.2013 в 16:15
Gerasimovaol Дата: Вторник, 13.08.2013, 08:34 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Спасибо!
 
Ответить
СообщениеСпасибо!

Автор - Gerasimovaol
Дата добавления - 13.08.2013 в 08:34
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!