#0
by andrewalexk
Microsoft Office Excel: Нельзя установить свойство HorizontalAlignment класса Range диапазон = столбец почему?
#2
by andrewalexk
:) буквы это конкретика а я про теорию... вот _ОкноЕхс.Windows(_ВыбФ).Activate; ... _ОкноЕхс.Range(Диапп).Select; _ОкноЕхс.Selection.Columns.AutoFit; _ОкноЕхс.Selection.HorizontalAlignment=1; а аутофит отрабатывает..
#3
by FreeFin
_Selection.HorizontalAlignment = -4108; //Горизонтальное выравнивание текста _Selection.VerticalAlignment = -4108; //Вертикальное выравнивание текста
#4
by andrewalexk
:) да я знаю просто 1 это то же что .. Если видВыр=0 Тогда //установить по левому краю Align = 1;//-1431 ИначеЕсли видВыр=2 Тогда // установить по правому краю Align = -4152; ИначеЕсли видВыр=1 Тогда // установить по центру Align = -4108; КонецЕсли; _ОкноЕхс.Selection.HorizontalAlignment=Align; эксель же принципиально не связывает range и horizontal alignment .. хотя я брал код из работающего куска но там диапазон = строка... вот и думаю
#7
by FreeFin
странно однако))) //*******если так пробовать: _ОкноЕхс.Windows(_ВыбФ).Activate; ... _ОкноЕхс.Range(Диапп).Select; _ОкноЕхс.Selection.Columns.AutoFit; _ОкноЕхс.Columns(ЧотутНада).Select; _ОкноЕхс.Selection.HorizontalAlignment=-4108;
#9
by andrewalexk
(8+) :) там даже ясно где копать.. файл в памяти висит и на такую попытку выдает такую ошибку а если из другой обработки открыть то дает выравнивать... эхехе..
#10
by AlexeyMK
Перем лЭксель; Процедура ДеИнициализацияЭксель Если ПустоеЗначение(лЭксель) = 0 Тогда лЭксель.ActiveWorkbook.Save; лЭксель.WorkBooks.Close; лЭксель.Quit; лЭксель = 0; КонецЕсли; КонецПроцедуры Процедура ЗапускМакроса scrptCtrl = СоздатьОбъект("MSScriptControl.ScriptControl"); scrptCtrl.Language = "vbscript"; лКод = " |Function ExecMacros(lApp) | | With lApp.Selection | .HorizontalAlignment = -4152 'xlRight | End With | |End Function |"; scrptCtrl.AddCode(лКод); scrptCtrl.Run("ExecMacros", лЭксель); КонецПроцедуры Функция ИнициализацияЭксель Рез = 0; Если ПустоеЗначение(лЭксель) = 1 Тогда Если СокрЛП(ПутьКФайлу) <> "" Тогда Попытка лЭксель = СоздатьОбъект("Excel.Application"); Исключение Сообщить(ОписаниеОшибки,"!"); Сообщить("Возможно, MS Excel не установлен на этом компьютере."); Возврат 0 ; КонецПопытки; Попытка лЭксель.WorkBooks.Open(ПутьКФайлу); Исключение Предупреждение("По указанному пути: """ + ПутьКФайлу + """ ничего нет..."); лЭксель.Quit; лЭксель = 0; КонецПопытки; Рез = 1; КонецЕсли; Иначе Рез = 1; КонецЕсли; Возврат Рез; КонецФункции Процедура ВыбратьФайл Перем Имя, Каталог; Если ФС.ВыбратьФайл(0, Имя, Каталог, "Путь к файлу Excel", "Файлы XLS (*.xls)|*.xls","*.xls") <> 1 Тогда Возврат; КонецЕсли; ПутьКФайлу = СокрЛП(Каталог) + СокрЛП(Имя); КонецПроцедуры// ВыбратьФайл Процедура Сформировать ИнициализацияЭксель; Попытка лТекЛист = лЭксель.WorkSheets("Лист1"); лТекЛист.Activate; лТекЛист.Range(лТекЛист.Cells(1, 1), лТекЛист.Cells(10, 1)).Select; ЗапускМакроса; Исключение ДеинициализацияЭксель; Возврат; КонецПопытки; ДеинициализацияЭксель; КонецПроцедуры Вот так работает. Свойство Selection желательно не использовать, можешь захватить другие объекты кроме ячеек.
#12
by smaharbA
вообщето код не очень, и кстати если использовать мсскриптконтрол, то совсем не обязательно делать саб или функ... За активе вообще по рукам всем тут нада ))
#13
by smaharbA
+ 4 и селект необязателен, даже если мсскриптконтрол, в него можно передавать объекты (это так, к слову... тут он вовсе не нужен)
#14
by smaharbA
и еще - ненадо так книгу активизировать _ОкноЕхс.Windows(_ВыбФ).Activate; лучше уж ищи ее перебором по индексам 1,2,3...
#15
by AlexeyMK
>smaharbA Хм... Да, щас проверил, все работает вроде. Видимо у автора большой опыт в решении проблем такого рода... Значит незря этот форум работает. Короткий и эффективный кусок кода. Так я понял проблемы все в Slection. Поправте если ошибаюсь.
#16
by AlexeyMK
>smaharbA - то совсем не обязательно делать саб или функ... Да :) так и есть. Только во всех источниках которые перерыл в инете везде "функ", как было выше сказано. Перепроверять не приходилось.
#18
by andrewalexk
:) а если в книге нет листов и вся деятельность ведется через _ОкноЕхс.Windows(_ИмяФайл).ActiveSheet.Range... ? з.ы. ту же ошибку выдает если через этот оператор и cells...
#19
by andrewalexk
:) и про Лист.Cells(й,ы).NumberFormat="00.0"; такую же ошибку выдает... что же с классом "Range" не так?..
#20
by smaharbA
а нафига тогда ActiveSheet если нет листов ? объясни... Лист.Cells(й,ы).NumberFormatLocal="0,00";
#23
by andrewalexk
:) (21+) ..передается большая таблица значений Т, ее по кусочкам пишут из mxl в xls-ы, их сшивают в 1 файл (_ВыбФ), а потом надо просто форматировать... Строк=Т.КоличествоСтрок+1; Колон=Т.КоличествоКолонок; _ОкноЕхс.Windows(_ВыбФ).Activate; Лист=_ОкноЕхс.Windows(_ВыбФ).ActiveSheet; Для й=1 По Колон Цикл Диапп0=_ОкноЕхс.Range(Лист.Cells(1,й),Лист.Cells(Строк,й)); Диапп0.Columns.AutoFit; КонецЦикла вот этот кусок работает... а ни HorizontalAlignment ни NumberFormatLocal ни NumberFormat не работает... или жалуется как в названии темы или просто пишет ":" в поле описания ошибки..
#25
by andrewalexk
:) первый кусок кода: _ОкноЕхс=СоздатьОбъект("Excel.Application"); _ИмяФФ =_ВыбКат+_ВыбФ; _ОкноЕхс.Visible=0; _ОкноЕхс.DisplayAlerts=0; _ОкноЕхс.DisplayAlerts=1; _ОкноЕхс.Workbooks.Open(_маска+"1.xls"); _ОкноЕхс.DisplayAlerts=0; _ОкноЕхс.ActiveWorkbook.SaveAs(_ИмяФФ,-4143); _ОкноЕхс.DisplayAlerts=1; Попытка _ОкноЕхс.Windows(_ВыбФ).Visible=0; _ОкноЕхс.Windows(_ВыбФ).DisplayWorkbookTabs = 1; _ОкноЕхс.Windows(_ВыбФ).TabRatio = 0.2; Исключение КонецПопытки; для _й=2 по _сч цикл состояние("Приклеиваю временный файл № "+_й); _ОкноЕхс.Workbooks.Open(_маска+_й+".xls"); _ОкноЕхс.Windows(_маскаФайл+_й+".xls").ActiveSheet.Range("A1","IV"+_ОкноЕхс.Windows(_маскаФайл+_й+".xls").ActiveSheet.UsedRange.Rows.count).Copy(_ОкноЕхс.Windows(_ВыбФ).ActiveSheet.Range("A"+сокрлп(_ОкноЕхс.Windows(_ВыбФ).ActiveSheet.UsedRange.Rows.Count+1))); _ОкноЕхс.Windows(_маскаФайл+_й+".xls").close(-1); конеццикла;
#27
by andrewalexk
:) я даже пробовал записать файл после автофит обнулить оле объект и из другой обработки открыть его взять не актившит а воркшит и отформатировать - на ранже жалуется... попробую.. а что значит наколешься?
#28
by smaharbA
заполни гденибудь посередине, не от первой колонки и столбца лист и посмотри usedrange.rows.count
#29
by andrewalexk
:) да я и без юзедренж запутался.. кучи примеров кода в инете по numberformat.. а у меня "нельзя установить свойство класса .." ни первый лист ни активный ни всю область ни по колонкам ни по ячейкам ни через range ни через cells ваще блин .. :))
#30
by andrewalexk
:) попробовал все activesheet убрал перед форматированием обнулил оле-объект, чтобы не висели лишние книги в памяти 1с - та же ошибка..
#31
by andrewalexk
:) Смахарбчик! спс за в но теперь следующая беда: внешне ячейка выглядит правильно формат стоит нужный но в суммирование ячейка включается ТОЛЬКо после перещелкивания на ней мышкой...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Стив Баллмер говорит, что Microsoft не дают развивать свои продукты
- Как узнать ProgID класса COM Microsoft Office Document Imaging 12.0 Type Li
- v8: Ошибка в Excel: Нельзя установить свойство NumberFormat
- Ошибка Microsoft Office Excel: Метод Select из класса Range задан неверно
- v8: Поможите! Произошла исключительная ситуация (Microsoft Office Excel)
- 1c 8.3 , Excel и Microsoft ADODB.Есть ли возможность загрузить картинки из Excel
- microsoft office excel пересчитывает формулы при открытии файлов
- Выгрузка в Excel по шаблону Active Document различия Excel 2010 Excel 2016
- Взаимодействие 1С 8.3 с Microsoft Office 365 (Excel)
- Выгрузка в Excel по шаблону Active Document различия Excel 2010 Excel 2016 ч2
В этой группе 1С
- Ответственные лица организаций в УПП
- УТ 10.3. RLS - как запретить отдельному пользователю изменять номенклатуру
- VBScript и реестр
- Терминал сбора данных
- Исчезают движения документа по регистрам
- Масштабирование колонок в отчете на базе универсального
- Перестало работать FTPСоединение
- Почему авансы в БУХии поступают по служебному договору?
- Сортировать ТЗ по колонке.
- Авто закрытие конфигуратора
- 1С - Рарус CRM проф
- Преобразование строки в кодировку Unicode в 1c 7.7
- Как хранить ТЗ в конфигурации ? или нужен толковый совет...
- Конвертация данных - как использовать Алгоритмы в обработчиках загрузки?
- Конвертация данных - Товары в одну строку
- COMSafeArray
- COM подключение к 1С7.7 из 1С8.1
- Компоновка данных: Иерархические группировки
- Переключатели в 1С 7.7
- Завершение работы 1с и SQL