Комментарии 45
А, ну вот, решаете сами, а лучше бы читали переменные окружения, как умеет делать Qt.
Аналогичная проблема. Планшет Chuwi Hi12, экран HiDPI 2K, KDE, Ubuntu 17.10, в настройках KDE нецелочисленное масштабирование, допустим, 1.8. Onlyoffice открывается маленьким окном. Chromium, Qt5 масштабируются правильно.
Главное, чтоб они друг друга видели (сейчас при подключении сервера документов в админке nextcloud есть проверка доступности с обеих сторон, если есть проблемы с доступом, nextcloud предупредит об этом).
Особенно это удобно, когда один сервер документов используют одновременно несколько Next(own)Cloud'ов и им подобных.
Просто установленные плагины работают для всех документов (то есть, привязаны к редакторам), а макросы — только конкретного документа (то есть, привязаны к файлу).
Я храню макросы в файлах
C:\Users\%user%\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB
C:\Users\%user%\Documents\Templates\Normal.dotm
И они доступны для всех документов.
Не совсем понятна область видимости ваших макросов в зависимости от местоположения таковых макросов.
oSheet.GetRange('D29').SetValue('=SUM(D3:D27)');
Тут несколько сомнений:
- Привык работать в нотации R1C1 в листе и с номерами колонок-столбцов из макросов. Эти вот FW190 меня обескураживают. И это не говоря о том, что это строковая константа, которую надо будет вручную нанизывать скриптом.
- Неясно как быть с локализацией — вдруг окажется, что в некоем документе будет или надо будет писать =СУММА(Г3: Г27)
А из JS в VBA тоже планируете? — Пока нет
Это был бы неплохой ответ на вопрос о Microsoft макросах — налету сконвертить в js, исполнить. При изменении сконвертить обратно. С сообщениями о несовместимости некоторых команд.
«Привык работать в нотации R1C1 в листе и с номерами колонок-столбцов из макросов»
Так MS Excel умеет в обоих нотациях работать, включается-выключается галочкой и формулы сами переписываются в другой нотации. Думаю что это можно предложить и для OnlyOffice если говорить про формулы.
Если про макросы — то указания на клетки для обработки должны быть в полной нотации, т.к. нет начальной точки откуда считать. Т.е. в части oSheet.GetRange('D29').SetValue непонятно как можно в R1C1 записать адрес.
А формулы внутри можно в любой.
Нотация:
R4 — всегда четвёртая колонка;
R — текущая колонка;
R[-4] — колонка на 4 левее.
With Worksheets(1)
.Range(.Cells(1, 1), .Cells(10, 10)).Borders.LineStyle = xlThick
End With
.Cells(1,1) — очень хорошо для макросов, я сам так пользуюсь
А вот формулы в листе писать в RC довольно сложно, ибо если ориентироваться на «R4C29», то это абсолютная ссылка, при протягивании она не будет меняться. Если делать относительной, то там будет вид RC[5], и чтобы понять куда иммено ссылается надо сначала вычислить свою колонку, потом прибавить к ней 5, и только тогда увидишь. А если это еще и между листами, то вообще сложнее (для человека). Гораздо проще запоминать «F5», и искать его на другом листе…
Ну или это дело привычки, но я так и не освоил. Дико бесит когда 1С (даже самые свежие) при экспорте в Excel обязательно включает R1C1, это применяется и другим файлам, и тебе приходится это выключать руками, причем через меню.
Это помогает всегда.
Зато RC[5] — это всегда правее на 5 колонок, это не в голове считать какая там пятая буква от начальной.
Да и в режиме вставки (регулируется клавишей F2) можно смело шагать курсором к ячейке, без оглядки на какие бы то ни было координаты.
;-)
Может вы знаете как переключалку R1C1 вывести хотя бы в в QAT?
Написать макрос из одной строчки и вывести его я знаю, но у меня есть аллегрия на файл personal.xls (плохо себя ведет когда нужно несколько Excel-ей открыть)
image.prntscr.com/image/wN_a7GpTRBaWSroM5PvYng.png
Но когда я открываю несколько экселей — следующие получают на общий personal в режиме reaonly, потому остальные экземпляры видят и кнопки, и макросы.
" Если бы у Microsoft был какой-то скриптовый язык, мы бы с радостью его поддержали. "
Начиная с Office 2013 / Office 365 у Microsoft есть вполне скриптовый язык, и он даже вполне рабочий. Зовется «Office API».
Официально на нем в первую очередь надо писать «приложения» для Store Add-In ов для Офиса, но в принципе можно и просто писать.
Они ушли от VBA специально чтобы офис в облаке мог работать с «макросами».
Посмотрите, довольно интересный
Excel.run(function (ctx) {
var activeWorksheet = ctx.workbook.worksheets.getActiveWorksheet();
activeWorksheet.getRange("A1:C3").values = 7;
return ctx.sync().then(function () {
console.log("Success! Set single value in range A1:C3.");
});
}).catch(function(error) {
console.log("Error: " + error);
});
Вы странные люди. На linux.org.ru, opennet.ru и здесь, на Хабре, просили присылать вам неправильно открывающиеся у вас документы на support@onlyoffice.com. Присылал docx — в ответ была отписка, что поддержка некоммерческой версии не осуществляется, присылал odt — что это не основной формат. И так раза 3 минимум, после чего забил что-либо присылать. На files@ есть смысл присылать..?
А можно как в Excel написать функцию, которую потом можно было бы использовать в формуле?
Внезапно: новая версия ONLYOFFICE с макросами