|
Берется не та страница в xls | ☑ | ||
---|---|---|---|---|
0
espanol
27.06.12
✎
18:20
|
Excel = Новый COMОбъект("Excel.Application");
Excel.DisplayAlerts = 0; ExcelBooks = Excel.Workbooks.Open(ВыбФайл.ПолноеИмя); Excel.ActiveWorkbook.RunAutoMacros(1); ГруппаАксессуарыСсылка = Справочники.Номенклатура.НайтиПоНаименованию("Аксессуары"); Если ГруппаАксессуарыСсылка.Пустая() Тогда ГруппаАксессуары = Справочники.Номенклатура.СоздатьГруппу(); ГруппаАксессуары.Наименование = "Аксессуары"; ГруппаАксессуары.СтавкаНДС = Справочники.СтавкиНДС.ОсновнаяСтавкаНДС; ГруппаАксессуары.ВалютаУчета = Константы.ВалютаРегламентированногоУчетаОрганизаций.Получить(); ГруппаАксессуары.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Аксессуары; ГруппаАксессуары.ТипНоменклатуры = Справочники.ТипыНоменклатуры.Штучный; ГруппаАксессуары.УстановитьНовыйКод(); ГруппаАксессуары.Записать(); ГруппаАксессуарыСсылка = ГруппаАксессуары.Ссылка; КонецЕсли; Для КолВаЛистов = 1 По Excel.Sheets.Count-2 Цикл ОбработкаПрерыванияПользователя(); ТекущийЛист = Excel.Sheets(КолВаЛистов); ИмяТекущегоЛиста = ExcelBooks.Sheets(КолВаЛистов).Name; ФайлСтрок = ТекущийЛист.Cells(1,1).SpecialCells(11).Row; ФайлКолонок = ТекущийЛист.Cells(1,1).SpecialCells(11).Column; Для Строка = 2 По ФайлСтрок Цикл Модель = СокрЛП(Excel.Cells(Строка, 1).Value); Наименование = СокрЛП(Excel.Cells(Строка, 2).Value); Артикул = СокрЛП(Excel.Cells(Строка, 3).Value); Количество = СокрЛП(Excel.Cells(Строка, 4).Value); Стоимость = СокрЛП(Excel.Cells(Строка, 5).Value); Группа = СокрЛП(Excel.Cells(Строка, 6).Value); Почему сразу начинает читать со 2 страницы? |
|||
1
viktor_vv
27.06.12
✎
18:22
|
Может там с 0 нумерация идет.
|
|||
2
espanol
27.06.12
✎
18:23
|
(1) нет
|
|||
3
oleg_prg
27.06.12
✎
18:32
|
Пробуй вот так
Для КолВаЛистов = 1 По Excel.Sheets.Count Цикл |
|||
4
espanol
27.06.12
✎
18:33
|
(3) мне последние 2 листа не нужны
|
|||
5
oleg_prg
27.06.12
✎
18:34
|
После цикла поставь
Если КолВаЛистов > Excel.Sheets.Count-2 Тогда Продолжить; КонецЕсли; |
|||
6
oleg_prg
27.06.12
✎
18:35
|
Вот мой рабочий пример
ОкноExcel = Новый COMОбъект("Excel.Application"); ОкноExcel.Workbooks.Open(СокрЛП(Файл)); Для А = 1 По ОкноExcel.Worksheets.Count Цикл ЛИСТЫ.НоваяСтрока(); ЛИСТЫ.Имя = ОкноExcel.Worksheets(А).Name; КонецЦикла; ПоказатьДанные(); Должно работать!!! |
|||
7
oleg_prg
27.06.12
✎
18:36
|
мне кажется что что-то неправильно со счетчиком в цикле
|
|||
8
oleg_prg
27.06.12
✎
18:37
|
Попробуй сделать так
Для КолВаЛистов = 1 По Excel.Sheets.Count-2 Цикл ОбработкаПрерыванияПользователя(); ТекущийЛист = Excel.Sheets(1); //сюда поставь 1 - что получается - с первого листа или опять глюк? ИмяТекущегоЛиста = ExcelBooks.Sheets(КолВаЛистов).Name; ФайлСтрок = ТекущийЛист.Cells(1,1).SpecialCells(11).Row; ФайлКолонок = ТекущийЛист.Cells(1,1).SpecialCells(11).Column; |
|||
9
espanol
27.06.12
✎
18:45
|
(8) пробую
|
|||
10
oleg_prg
27.06.12
✎
18:50
|
Вроде вот рабочий код
Excel = Новый COMОбъект("Excel.Application"); Excel.DisplayAlerts = 0; ExcelBooks = Excel.Workbooks.Open(ВыбФайл.ПолноеИмя); Excel.ActiveWorkbook.RunAutoMacros(1); ГруппаАксессуарыСсылка = Справочники.Номенклатура.НайтиПоНаименованию("Аксессуары"); Если ГруппаАксессуарыСсылка.Пустая() Тогда ГруппаАксессуары = Справочники.Номенклатура.СоздатьГруппу(); ГруппаАксессуары.Наименование = "Аксессуары"; ГруппаАксессуары.СтавкаНДС = Справочники.СтавкиНДС.ОсновнаяСтавкаНДС; ГруппаАксессуары.ВалютаУчета = Константы.ВалютаРегламентированногоУчетаОрганизаций.Получить(); ГруппаАксессуары.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Аксессуары; ГруппаАксессуары.ТипНоменклатуры = Справочники.ТипыНоменклатуры.Штучный; ГруппаАксессуары.УстановитьНовыйКод(); ГруппаАксессуары.Записать(); ГруппаАксессуарыСсылка = ГруппаАксессуары.Ссылка; КонецЕсли; Для КолВаЛистов = 1 По Excel.Sheets.Count Цикл ОбработкаПрерыванияПользователя(); Если КолВаЛистов > Excel.Sheets.Count-1 Тогда Продолжить; КонецЕсли; ТекущийЛист = Excel.Sheets(КолВаЛистов); ИмяТекущегоЛиста = ExcelBooks.Sheets(КолВаЛистов).Name; ФайлСтрок = ТекущийЛист.Cells(1,1).SpecialCells(11).Row; ФайлКолонок = ТекущийЛист.Cells(1,1).SpecialCells(11).Column; Для Строка = 2 По ФайлСтрок Цикл Модель = СокрЛП(Excel.Cells(Строка, 1).Value); Наименование = СокрЛП(Excel.Cells(Строка, 2).Value); Артикул = СокрЛП(Excel.Cells(Строка, 3).Value); Количество = СокрЛП(Excel.Cells(Строка, 4).Value); Стоимость = СокрЛП(Excel.Cells(Строка, 5).Value); Группа = СокрЛП(Excel.Cells(Строка, 6).Value); |
|||
11
oleg_prg
27.06.12
✎
18:55
|
еще можно вот так обратиться к ячейке листа
ОкноExcel.Worksheets(НомерЛиста).Range("A1").Value |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |