Имя: Пароль:
1C
 
И снова Excel + 1C (объединные ячейки)
0 tiko
 
09.03.07
09:23
Привет! Снова парюсь с Excel-ем.
Проблема следующая.
В файле, допустим 3 колонки: Код, Наименование, Количество
В первой строке ячейки объдинены и в них содержится текст, который мне не нужен. А вот с следующей ячейки могут быть не объединены и ВОТ ЭТИ ДАННЫЕ мне и нужны. Проблема что строки перемешаны без порядка.
Вопрос - Как перебирая последовательно строки файла Excel определить: 1. объединены ли ячейки?
2. количество ячеек в строке?
Вот такая задача...
1 ТелепатБот
 
гуру
09.03.07
09:23
2 tiko
 
09.03.07
09:24
Блин, бот тут не к месту. Убейте его.
3 AeDen
 
09.03.07
09:29
Не трожь железяку!!! Бот - это наше все!!!
4 Рупор абсурда
 
09.03.07
09:36
MergeCells
5 tiko
 
09.03.07
09:38
не понял, если можно поподробнее
6 Рупор абсурда
 
09.03.07
09:53
(5) Нельзя!
7 sivalor
 
09.03.07
10:09
if Range("A1").MergeCells then
 msgbox("Эта ячейка объединена")
else
 msgbox("Эта ячейка не объединена")
endif
8 tiko
 
09.03.07
10:26
Слушай, sivalor.
Т.е. на сколько я понял мне код надо строить примерно так
Если Range("A1").MergeCells  = 1 Тогда
продолжить;
Иначе
//тут получать код, наименование, количество
КонецЕсли;

Что мне кажется что это не прокатит, попробую щас конечно
9 smaharbA
 
09.03.07
10:28
(8) Не прокатит...
10 tiko
 
09.03.07
10:29
Ну тогда как мне находить строки не объединенные?
11 AcaGost
 
09.03.07
10:30
(9) Загляни пожалуйста в v7: 1C + Word (ввод данных в колонтитулы)
12 AcaGost
 
09.03.07
10:31
13 sivalor
 
09.03.07
10:35
(8) а как ты проходишь по строкам?
как организована таблица?
я так понял:
|Код|Наименование|Количество
|Бытовая техника|
|1|Пылесос|5
|2|Вентилятор|2
|Удобрения|
...
мну делает так
For i=1 to ВсегоСтрок
 If Range("A1").Offset(1,0).MergeCells=false then 'только необъединенные рассматриваем
   получаем код и наименование
 endif
next i
14 tiko
 
09.03.07
10:44
да, sivalor, таблица организована именно так
Сейчас проверю тобою предложенный код...
только попробую прикрутить в 1С
15 sivalor
 
09.03.07
10:48
упс
If Range("A1").Offset(i,0).MergeCells=false then 'только необъединенные рассматриваем
  получаем код и наименование
16 smaharbA
 
09.03.07
10:50

//*******************************************
Процедура Сформировать()
   Ексель=СоздатьОбъект("Excel.Application");
   Книга=Ексель.Workbooks.Open("c:\книга11.xls");
   Лист=Книга.Worksheets.item(1);
   Последняя=Лист.Cells.SpecialCells(11);
   Для к=1 По Последняя.Column Цикл
       Для с=1 По Последняя.Column Цикл
           Если Лист.Cells(с,к).MergeCells=-1 Тогда
               Сообщить(Лист.Cells(с,к).MergeArea.Address);
           КонецЕсли;
       КонецЦикла;
   КонецЦикла;
КонецПроцедуры
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший