|  01.06.2012, 15:50 | #21 | 
| MCP | |
|  | 
|  01.06.2012, 16:00 | #22 | 
| Участник | 
			
			Если я правильно понял, то мне надо будет к имеющемуся классу дописать этот метод и все вроде как должно заворкать?
		 | 
|  | 
|  04.06.2012, 10:17 | #23 | 
| Участник | X++: MultiRange = this.findRange(bookMark, _workSheet); Borders = MultiRange.Borders(); | 
|  | 
|  04.06.2012, 10:50 | #24 | 
| Участник | Цитата: Цитата: 
		
			Сообщение от Владимир Максимов
			   Чтобы уточнить синтаксис какой-либо команды непосредственно в Excel, используют встроенный в Excel макрорекодер. Т.е. запись всех действий пользователя, совершаемых в Excel. Пункт меню Сервис -> Макрос -> Начать запись. Выполняешь все необходимые действия, далее останавливаешь запись, открываешь макрос на редактирование и смотришь, какая именно команда была использована. | 
|  | 
|  04.06.2012, 11:29 | #25 | 
| Участник | 
			
			Хочу объединить ячейки. Набросал пробный метод. Он не работает, но AX ошибки не выдает. В чем моя ошибка? X++:     Com ComApplication;
    Com Range;
    Com WorkSheet;
    ;
    if (m_comDocument)
    {
        comApplication = m_comDocument.application();
        if (comApplication)
        {  
            workSheet = this.getWorkSheet(1);
            Range = workSheet.Range('a1:c1');
            Range.MergeCells();           
        }
    } | 
|  | 
|  04.06.2012, 11:31 | #26 | 
| Участник | 
			
			Вот я дурак   ответ нашел. Всем спасибо. X++: Range.MergeCells(True); | 
|  | 
|  04.06.2012, 14:39 | #27 | 
| Участник | 
			
			С форматированием текста по центру кто-нить сможет помочь? X++: void CentrAlignment(MSOfficeBookMark_RU bookMark, int _workSheet = 1) { Com ComApplication; Com Range; Com WorkSheet; ; if (m_comDocument) { comApplication = m_comDocument.application(); if (comApplication) { workSheet = this.getWorkSheet(_workSheet); Range = workSheet.Range(bookMark); Range.HorizontalAlignment('xlCenter'); Range.VerticalAlignment('xlCenter'); } } } Последний раз редактировалось smailik; 04.06.2012 в 14:42. | 
|  | 
|  04.06.2012, 15:25 | #28 | 
| Участник | X++: Range.HorizontalAlignment(#xlCenter) | 
|  | |
| За это сообщение автора поблагодарили: smailik (1). | |
|  05.06.2012, 14:35 | #29 | 
| Участник | 
			
			Еще вопрос в эту тему. Не могу победить нижнее подчеркивание. В макросе вот это  Код: Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    Selection.Borders(xlEdgeRight).LineStyle = xlNoneX++: workSheet = this.getWorkSheet(_workSheet); Range = workSheet.Range(bookMark); Borders = Range.Borders(); | 
|  | 
|  05.06.2012, 14:44 | #30 | 
| Участник | X++: void Borders() { //Рамки comRange = excel.findRange(ComExcelDocument_RU::numToNameCell(1,1) + ":" + ComExcelDocument_RU::numToNameCell(11,i-1),1); borders = comRange.borders(); border = borders.item(7); border.lineStyle(1); //xlContinuous border.weight(2); //xlThin border.colorIndex(-4105); border = borders.item(8); border.lineStyle(1); //xlContinuous border.weight(2); //xlThin border.colorIndex(-4105); border = borders.item(9); border.lineStyle(1); //xlContinuous border.weight(2); //xlThin border.colorIndex(-4105); border = borders.item(10); border.lineStyle(1); //xlContinuous border.weight(2); //xlThin border.colorIndex(-4105); border = borders.item(11); border.lineStyle(1); //xlContinuous border.weight(2); //xlThin border.colorIndex(-4105); border = borders.item(12); border.lineStyle(1); //xlContinuous border.weight(2); //xlThin border.colorIndex(-4105); } | 
|  | 
|  05.06.2012, 15:18 | #31 | 
| Участник | 
			
			comRange, excel, borders, border это все Com? что то у меня ругается на строку excel.findRange а когда к своему приписал X++: Border = borders.item(7); Border.lineStyle(1) | 
|  | 
|  05.06.2012, 15:42 | #32 | 
| Участник | 
			
			Цитата из одной статьи посвященной принципам перевода макроса Excel в синтасис другого языка программирования Цитата: 
		
			Константы Excel В теле макроса встречаются странные значения, которые начинаются с символов "xl". В данном случае - это xlCellValue и xlLess. Но и дальше по коду макроса встречаются аналогичные значения. Это именно значения, поскольку, судя по коду, они присваиваются неким параметрам. Что это такое? Это константы. Т.е. это некоторые значения, которые были определены в момент открытия Excel. Их отличительным признаком как раз и является то, что они начинаются с символов "xl" и из кода макроса следует, что это некоторые ранее определенные значения. Определить, чему же равны эти константы можно там же, в редакторе "Microsoft Visula Basic", где Вы и просматриваете код макроса Excel. Для этого надо открыть "Object Browser". Пункт меню "View" - подпункт "Object Browser". Далее в пустом окошке слева от кнопки с иконкой бинокля ввести имя искомой константы и нажать кнопку с иконкой бинокля (или клавишу Enter). В результате поиска в самом низу окна "Object Browser" будет отображено значение искомой константы. В Axapta константы записывают через макросы. Либо в отдельном "файле" макросов (ветка AOT \ Macros), либо непосредственно в теле метода X++: #define.xlEdgeBottom(9) #define.xlEdgeRight(10) #define.xlContinuous(1) #define.xlMedium(-4138) #define.xlAutomatic(-4105) border = borders.item(#xlEdgeBottom); border.lineStyle(#xlContinuous); border.weight(#xlMedium); border.colorIndex(#xlAutomatic); 
				__________________ - Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... | 
|  | |
| За это сообщение автора поблагодарили: smailik (1). | |
|  05.06.2012, 15:50 | #33 | 
| Участник | 
			
			спасибо!   | 
|  | 
|  06.06.2012, 06:20 | #34 | 
| Участник | Цитата: Com comRange; COM borders; COM border; | 
|  | 
|  15.06.2012, 15:35 | #35 | 
| Участник | 
			
			Всем доброго дня. У меня вот какой вопрос. У меня объединены 3 ячейки. В них установлен перенос по словам, но при формировании документа если текст не влазит в ячейку то высота автоматически не увеличивается. Возможно ли каким либо образом определить весь текст влез в ячейку или не весь?
		 | 
|  | 
|  15.06.2012, 16:20 | #36 | 
| Ищущий знания... | 
			
			можно попробовать выполнить AutoFit по строке (выделенным строкам)
		 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  15.06.2012, 16:48 | #37 | 
| Участник | Цитата: | 
|  | 
|  15.06.2012, 17:19 | #38 | 
| Moderator | 
			
			К сожалению, не прокатит. Нужно примерно так: How to use Row.AutoFit for merged Excel cells Я уже как-то использовал в ABAPе, у меня есть отлаженный фрагмент на VBScript для использования с MS Script Control: Код: `Option Explicit ` `Public Function MergeAndFit(r, xlApp) ` ` 'http://www.source-code.biz/snippets/vbasic/11.htm ` ` ' Merges a cell range, wraps text and auto-fits the row height. ` ` ' Because the Row.AutoFit method ignores merged cells, we temporarily expand the first column of ` ` ' the cell range to the width of the whole cell range and call AutoFit with the un-merged cell. ` ` Dim Row ` ` Dim Column1 ` ` Dim RangeWidth ` ` Dim OldColumn1Width ` ` Dim OldRowHeight ` ` Dim FitRowHeight ` ` Dim i 'As Integer ` ` Set r = r.MergeArea 'чтобы можно было передавать одну (первую) ячейку ` ` Set Row = r.Rows(1) ` ` Set Column1 = r.Columns(1) ` ` RangeWidth = r.Width ` ` OldColumn1Width = Column1.ColumnWidth ` ` For i = 1 To 3 ' approximation of Column1.ColumnWidth in 3 steps ` ` Column1.ColumnWidth = RangeWidth / Column1.Width * Column1.ColumnWidth ` ` Next ` ` r.WrapText = True ` ` r.MergeCells = False ` ` OldRowHeight = Row.rowHeight ` ` Row.AutoFit ` ` FitRowHeight = Row.rowHeight ` ` r.MergeCells = True ` ` Column1.ColumnWidth = OldColumn1Width ` ` 'VBScript doesn't support the IIf() function ` ` 'Row.rowHeight = IIf(FitRowHeight > OldRowHeight, FitRowHeight, OldRowHeight) ` ` Row.rowHeight = xlApp.WorksheetFunction.Max(FitRowHeight, OldRowHeight) ` ` MergeAndFit = Row.rowHeight ` `End Function ` | 
|  |