Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Google script - вывод в ячейку результата формулы.

Ответить
Настройки темы
VBS/WSH/JS - [решено] Google script - вывод в ячейку результата формулы.

Новый участник


Сообщения: 46
Благодарности: 2

Профиль | Отправить PM | Цитировать


Здравствуйте.
Нужно вывести в ячейку результат формулы (т.е. просто число, результат вычислений), а не саму формулу.
Скрипт
Код: Выделить весь код
/** @OnlyCurrentDoc */

function Random() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getCurrentCell().setValue('=RANDBETWEEN(100000,999999)');
};
почему-то пишет в ячейку саму формулу.
Как записать результат вычислений?

Зарание спасибо.

Отправлено: 22:39, 08-09-2018

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата subuday77:
почему-то пишет в ячейку саму формулу. »
Пишет не формулу, а значение — строку текста. Не «почему-то», а в полном соответствии с написанным Вами программным кодом.

Для задания формулы — используйте методы setFormula(String)/setFormulaR1C1(String) класса Range.

Отправлено: 23:34, 08-09-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 46
Благодарности: 2

Профиль | Отправить PM | Цитировать


То, что setFormyla даёт формулу - понятно.
Но мне-то нужно результат формулы.
Как его получить?

Отправлено: 00:19, 09-09-2018 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата subuday77:
Но мне-то нужно результат формулы.
Как его получить? »
Посчитать, разумеется. Если Google Apps Script даёт доступ к функциям рабочего листа, как это позволяет Microsoft Excel:
Код: Выделить весь код
Option Explicit

Sub Sample()
    ActiveCell.Value = Application.WorksheetFunction.RandBetween(100000, 999999)
End Sub
то использовать данный подход (позволяет или не позволяет — я совершенно не в курсе, я и о самом существовании Google Apps Script узнал только из Вашего вопроса) [Update: cудя по беглому поиску — нихрена не позволяет]. Если нет — реализовать вычисление самому программно.

В принципе, полагаю, возможен и третий способ: использовать метод . setFormula() для присвоения ячейке формулы, затем использовать метод .getValue() для получения значения (я не знаю как там устроен пересчёт значений на рабочем листе — автоматический, ручной, по времени, по событию — так что смотрите сами, будет ли потребен в этом месте программный вызов пересчёта), и затем уже использовать метод .setValue() с полученным значением.

Последний раз редактировалось Iska, 09-09-2018 в 00:49. Причина: Судя по беглому поиску — не позволяет.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:45, 09-09-2018 | #4


Новый участник


Сообщения: 46
Благодарности: 2

Профиль | Отправить PM | Цитировать


Ok, спасибо.
Попробую покурить.

Решил.
Вот так:
Код: Выделить весь код
/** @OnlyCurrentDoc */

function Random() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getCurrentCell().setFormula('=RANDBETWEEN(100000,999999)');
  z = spreadsheet.getCurrentCell().getValue()
  spreadsheet.getCurrentCell().setValue(z)
  };
Работает.

Отправлено: 00:56, 09-09-2018 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


subuday77, сделайте отдельную переменную для ссылки на текущую ячейку, и работайте через неё, наподобие (не проверялось):
Код: Выделить весь код
function Random() {
    var CurrentCell = SpreadsheetApp.getActive().getCurrentCell();
    
    CurrentCell.setFormula('=RANDBETWEEN(100000,999999)');
    CurrentCell.setValue(CurrentCell.getValue())
}
всё ж чуть быстрее будет.
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:21, 09-09-2018 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Google script - вывод в ячейку результата формулы.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] вывод результата в файл lox-ness Скриптовые языки администрирования Windows 1 10-04-2016 03:29
CMD/BAT - Как в .bat файле сделать вывод результата выполнения в переменную?? Eugene Shugaev Скриптовые языки администрирования Windows 1 12-03-2014 13:39
CMD/BAT - Как правильно сделать вывод результата. dazm Скриптовые языки администрирования Windows 1 12-07-2013 17:31
CMD/BAT - [решено] Сравнение txt файлов и вывод результата LAKERS824 Скриптовые языки администрирования Windows 2 08-07-2012 12:48
CMD/BAT - Требуется .Bat для поочередного пинга + вывод результата campbell Скриптовые языки администрирования Windows 1 27-09-2011 00:19




 
Переход