簡體   English   中英

如何更改用戶正在編輯的單元格? (Google表格)

[英]How do I change the cell a user is editing? (Google Sheets)

我正在使用的工具會顯示Google雲端硬盤文件列表。 提示用戶在要包含在文檔鏈接的主庫中的每個文件旁邊放置一個“ X”。 添加文件后,我刪除具有“ X”的每一行。

在今天的測試中,我注意到,如果我在單元格中鍵入“ X”,但是在單擊“將所選文件添加到庫”按鈕之前未按Enter,則不會添加該文件。 很好,問題在於仍然存在一個選定的單元格,其中帶有“ X”,但它之間只有一個。

有沒有辦法清除正在編輯的單元格? 還是將正在編輯的單元格移至已刪除行?

如果有幫助,這是我的代碼(我顯然不是專業的編碼人員,因此感謝您的耐心配合):

function addToLibrary() {
  var x = 2;
  var added = 0;
  var dupes = 0;
  lib_last = libSheet.getLastRow();
  while (sheet.getRange(x,1).getValue() != "") {
    if (sheet.getRange(x,5).getValue() != "") {
      id = sheet.getRange(x,1).getValue();
      var checkRow = checkDupes(id);
      if (checkRow >= lib_last + 1) {
        var my_name = DriveApp.getFileById(id).getName();
        SpreadsheetApp.getActiveSpreadsheet().toast('The design file: ' + '"' + my_name + '"' + ' has been added to the Library!', "ADDED FILE...",600);
        var my_link = DriveApp.getFileById(id).getUrl();
        getDeets(id, my_link);
        lib_last++;
        added++;
      } 
      else {
        dupes++;
      }
    }
    x++;
  }
  SpreadsheetApp.getActiveSpreadsheet().toast("", "",0.1);
  Browser.msgBox("Finished! Documents added: " + added + ". Duplicate documents: " + dupes);
  for (var i = x - 1; i>=2; i--) { // Deletes rows with non-null
    if (!sheet.getRange(i,5).isBlank()) {
      sheet.deleteRow(i);
    }
  }
}

正在編輯的單元格正在瀏覽器中而不是服務器上進行編輯。 在用戶停止編輯之前,更新值的請求不會發送到Google。 如果用戶通過單擊按鈕“停止”編輯,則存在爭用條件,在爭用條件之間將首先得到處理-腳本執行或編輯狀態的提交。

我建議使用自定義腳本/附加菜單,這將導致在調用該功能之前提交單元格編輯,因為瀏覽器選擇從電子表格單元格更改為“表格”菜單欄。

function onOpen(e) {
  // add ons need to check authMode before doing this stuff
  e.source.addMenu('My Custom Menu', [
    { name: 'Add Selected Files to Library', functionName: 'addToLibrary' }
  ]);
}

交替:

function onOpen(e) {
  // add ons need to check authMode before doing this stuff
  SpreadsheetApp.getUi()
    .createMenu('My Custom Menu') // .createAddonMenu()
    .addItem('Add Selected Files to Library', 'addToLibrary')
    .addToUi();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM