Установить в Excel свойство класса.
29.12.2004
14:29
#1
"Через 1С в Excel необходимо установить несколько свойств класса OutLine.
Делаю так:
1. ApplicationObj = СоздатьОбъект ("Excel.Application");
2. РабКнига = ApplicationObj.Workbooks.Open(Файл);
3. Лист = РабКнига.WorkSheets("Sheet1");
4. РабКнига.ActiveSheet.Outline.AutomaticStyles = "False";
5. РабКнига.ActiveSheet.Outline.SummaryRow = "xlAbove";
6. РабКнига.ActiveSheet.Outline.SummaryColumn = "xlRight";
Но в результате на строчки: 4, 5, 6 выдается одна и та же ошибка - Нельзя установить свойство (AutomaticStyles, SummaryRow, SummaryColumn) класса OutLine
Хотя в excelевском хелпе указано, что эти свойства Read/Write
Как правильно установить эти свойства ?"
Делаю так:
1. ApplicationObj = СоздатьОбъект ("Excel.Application");
2. РабКнига = ApplicationObj.Workbooks.Open(Файл);
3. Лист = РабКнига.WorkSheets("Sheet1");
4. РабКнига.ActiveSheet.Outline.AutomaticStyles = "False";
5. РабКнига.ActiveSheet.Outline.SummaryRow = "xlAbove";
6. РабКнига.ActiveSheet.Outline.SummaryColumn = "xlRight";
Но в результате на строчки: 4, 5, 6 выдается одна и та же ошибка - Нельзя установить свойство (AutomaticStyles, SummaryRow, SummaryColumn) класса OutLine
Хотя в excelевском хелпе указано, что эти свойства Read/Write
Как правильно установить эти свойства ?"
29.12.2004
17:56
#3
"xlAbove и xlRight - эти имена констант понимает только Excel Visual Basic в текстах своих модулей. Через OLE нужно передавать их числовое значение.
xlAbove = 0
xlRight = -4152
Чтобы узнать числовые значения этих констант, я написал следующий код в редакторе Visual Basic:
Cells(1,1).Value = xlAbove
Cells(1,2).Value = xlRight
и запустил его.
А про True и False в документации по языку 1С сказано:
"В OLE Automation TRUE и FALSE имеют соответственно значения: -1 (минус единица) и 0"
Итак, вот правильный код:
ApplicationObj = СоздатьОбъект ("Excel.Application");
РабКнига = ApplicationObj.Workbooks.Open(Файл);
Лист = РабКнига.WorkSheets("Sheet1");
РабКнига.ActiveSheet.Outline.AutomaticStyles = 0;
РабКнига.ActiveSheet.Outline.SummaryRow = 0;
РабКнига.ActiveSheet.Outline.SummaryColumn = -4152
"
xlAbove = 0
xlRight = -4152
Чтобы узнать числовые значения этих констант, я написал следующий код в редакторе Visual Basic:
Cells(1,1).Value = xlAbove
Cells(1,2).Value = xlRight
и запустил его.
А про True и False в документации по языку 1С сказано:
"В OLE Automation TRUE и FALSE имеют соответственно значения: -1 (минус единица) и 0"
Итак, вот правильный код:
ApplicationObj = СоздатьОбъект ("Excel.Application");
РабКнига = ApplicationObj.Workbooks.Open(Файл);
Лист = РабКнига.WorkSheets("Sheet1");
РабКнига.ActiveSheet.Outline.AutomaticStyles = 0;
РабКнига.ActiveSheet.Outline.SummaryRow = 0;
РабКнига.ActiveSheet.Outline.SummaryColumn = -4152
"
Читают тему
(гостей: 1)