Как можно создать кнопку в Google Таблицах, чтобы при нажатии на нее в ячейку автоматически вставлялась текущая дата или время?

Здравствуйте! 

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

Также, если у вас есть другие идеи о том, как можно быстро вносить дату в следующую строку одним кликом, буду благодарен за ваши подсказки.
  • 1 ноября 2024 г. 7:52
Ответы на вопрос 3
Здравствуйте!

Создание кнопки в Google Таблицах для вставки текущей даты и времени в ячейку возможно с помощью Google Apps Script. Вот как это сделать:

1. **Создание скрипта**:
   - Откройте свою таблицу Google.
   - Нажмите на `Расширения` > `Apps Script`.
   - В открывшемся окне удалите весь текст и вставьте следующий код:

```javascript
function insertCurrentDate() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const cell = sheet.getActiveCell();
  cell.setValue(new Date());
}
```

   - Нажмите `Файл` > `Сохранить` и дайте проекту имя (например, "Insert Date").

2. **Создание кнопки**:
   - Вернитесь в Google Таблицы.
   - Выберите `Вставка` > `Рисунок` > `Новый`.
   - Нарисуйте любую фигуру (например, круг или прямоугольник) и нажмите `Сохранить и закрыть`.
   - Перетащите изображение на нужное место в таблице.
   - Щелкните правой кнопкой мыши на изображение и выберите `Присоединить скрипт`.
   - Введите имя функции, которую вы создали, то есть `insertCurrentDate`, и нажмите `ОК`.

Теперь, когда вы нажмете на кнопку, в активной ячейке будет вставлена текущая дата и время.

### Другие варианты

1. **Использование горячих клавиш**:
   - В Excel есть возможность вставлять текущую дату и время с помощью горячих клавиш (Ctrl + ; для даты, Ctrl + Shift + ; для времени). В Google Таблицах вы можете использовать похожий метод, просто запомнив эти сочетания.

2. **Настройка функции для добавления даты**:
   - Если вы хотите автоматически вставлять дату в следующую строку, вы можете изменить скрипт так, чтобы он находил последнюю заполненную строку и вставлял дату в первую ячейку пустой строки в выбранном столбце.

Пример модифицированного скрипта:

```javascript
function insertCurrentDate() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const lastRow = sheet.getLastRow();
  const nextRow = lastRow + 1;
  const dateCell = sheet.getRange(nextRow, 1); // Замените 1 на номер нужного столбца
  dateCell.setValue(new Date());
}
```

Надеюсь, это поможет! Если у вас есть дополнительные вопросы, не стесняйтесь задавать.
Добрый день! 
Используйте скрипты и триггер onEdit(e)
0. Через создание своего меню. Будет по нажатию одной кнопки. 
function insertStaticTime() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var currentTime = new Date();
  var formattedTime = Utilities.formatDate(currentTime, Session.getScriptTimeZone(), "dd.MM.YYYY HH:mm");
  
  // Вставляем текущее время в ячейку A1 (можете изменить на нужную ячейку)
  sheet.getRange("A1").setValue(formattedTime);
}

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
      .addItem('Insert Current Time', 'insertStaticTime')
      .addToUi();
}

1. Если хочется кнопок (не знаю насколько это удобно, есть некоторые сомнения).
Buttons in Google Sheets: https://spreadsheet.dev/buttons-in-google-sheets
В качестве скрипта что-нибудь такое:
function insertCurrentDateTime() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // Получаем активный лист
  var currentDateTime = new Date(); // Получаем текущую дату и время
  sheet.getRange('A1').setValue(currentDateTime); // Вставляем дату и время в ячейку A1
}

Похожие вопросы