Функция для редактора скриптов Google Sheets с кнопкой TODAY () и NOW () в двух разных столбцах, следующий из которых не пуст в столбце - PullRequest
2 голосов
/ 22 июня 2019

В настоящее время я просматриваю некоторую простую документацию для расплывчатых способов сделать «кнопку» (изображение) поверх листа Google, чтобы вызвать функцию в редакторе сценариев. Я не знаком с этим типом синтаксиса, обычно я использую AutoHotKey и немного Python.

Все, что я хочу сделать, это чтобы эта кнопка заполнила 2 столбца. Текущая дата в одном, а текущее время в другом (у него даже не должно быть своего года или секунд tbh). Я не знаю, имеет ли значение то, что название страницы основано на том, как работает скрипт. Таким образом, диапазон («Журнал»! G4: H). Например, если бы я делал это для AutoHotkey, я бы сказал:

WinGet, winid ,, A ; <-- need to identify window A = active
MsgBox, winid=%winid% 
;do some stuff 
WinActivate ahk_id %winid%

Таким образом, это влияет на любую страницу, на которой он активен. Я хотел бы использовать одну и ту же функцию для одних и тех же столбцов на разных листах. В идеале это так. Мне все равно, нужно ли мне клонировать каждую уникальную функцию на основе страницы, но я просто не могу даже понять этот первый шаг, смеется.

Я не слишком знаком с этим новым макросом. Если я использую этот макрос, он работает только для моего клиента, скажем, как он записывает движения относительного соотношения сторон? То есть, если я записываю макрос на свой компьютер и играю на своем андроиде. Изменения в платформе изменят его выполнение?

Если кто-то может указать мне в каком-либо направлении, какую-либо хорошую документацию или ресурсы для редактора скриптов Google Sheet или его синтаксиса, я был бы очень признателен.

РЕДАКТИРОВАТЬ: Просто чтобы уточнить. Я действительно сосредоточился на том, чтобы быть функцией, которая заполняет от щелчка / нажатия (мобильный) изображения. В настоящее время я использую onEDIT на листе, и он не будет служить целям, которые я хочу для этой функции. Это просто ярлык для быстрого ввода метки времени, и эти поля все еще могут быть обработаны без повторного применения новой функции для более новой текущей даты / времени.

РЕДАКТИРОВАТЬ: РЕДАКТИРОВАТЬ: Заканчивается кнопкой изображения, которая запускает скрипт, который может вводить только в текущую ячейку.

function timeStamp() {
    SpreadsheetApp.getActiveSheet()
        .getActiveCell()
        .setValue(new Date());
}

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

1 Ответ

1 голос
/ 22 июня 2019

возможно, это поможет ... если отредактировать 1-й столбец, он автоматически напечатает дату во 2-м столбце и время в 3-м столбце на листе 1:

function onEdit(e) {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sheet1" ) { 
var r = s.getActiveCell();
if( r.getColumn() == 1 ) { 
  var nextCell = r.offset(0, 1);
  var newDate = Utilities.formatDate(new Date(), 
  "GMT+8", "MM/dd/yyyy");
  nextCell.setValue(newDate);
}
if( r.getColumn() == 1 ) { 
  var nextCell = r.offset(0, 2);
  var newDate1 = Utilities.formatDate(new Date(), 
  "GMT+8", "hh:mm:ss");
  nextCell.setValue(newDate1);
}}}

https://webapps.stackexchange.com/a/130253/186471

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...