簡體   English   中英

如何將用戶輸入替換為用戶輸入 + URL,同時使其成為與 Google Apps 腳本/Google 表格的超鏈接?

[英]How to replace user input to User Input + URL while making it a hyper link with Google Apps Scripts/Google Sheets?

[目標]我在一個包含多行的表格中創建了一個專用列,供用戶在單元格中輸入某些 ID。 我希望能夠將這些 ID 與特定的固定 URL 結合起來,這將允許我們根據每個 ID 將 go 連接到特定站點。

[問題]我已經創建了以下代碼,我理解它將允許使用ZE6B391A8D2C45902A2A2A2A23A2A8B6585703DZ,但是它沒有ZE6B391A8D2C45902A2A23A8B6585703DZ與IDSSE SESE NOTY IDSES NOS SOSE IDSSE設置為ZE6B391A8D2C45888。 換句話說,為了完成 URL,我們需要固定的 URL(示例:example.com)和用戶提供的 ID(示例:12345)並使其可點擊(示例:example.com/12345)。

[問題]有沒有辦法使以下步驟僅在輸入 ID 時發生? 如果沒有,我想讓單元格空白。

  1. 用戶將 ID 設置為單元格(例如:12345)。
  2. Google Apps 腳本以某種方式復制 ID,然后將其替換為帶有 ID 的固定顯示文本(例如:Go 到 12345 的鏈接)。
  3. Google Apps 腳本以某種方式使用固定的 URL (example.com/) 和 ID(例如:12345),並將它們組合起來(例如:example.com/12345)。
  4. 用戶不會看到整個 URL,但他們會看到顯示文本(轉到 12345 的鏈接),如果他們單擊鏈接,它將帶他們到特定於ID。

 // Global veriables var app = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Status"); function onEdit(e) { var setLink = app.getRange("M16:M"); setLink.setValue('=HYPERLINK("https://example.com/","Go to link for ")'); }

解釋:

您的目標是將M16:M范圍內的值替換為在該單元格上編輯時包含該值的超鏈接。

  • 首先,您需要利用事件 object

  • 在編輯M16:M范圍內的單元格時,以下腳本將使用超鏈接替換該值,該超鏈接將包含先前的值作為urlid

  • 如果您刪除M16:M中的值,url 將自動被刪除。

解決方案:

function onEdit(e) {  
  const ss = e.source;
  const as = ss.getActiveSheet();
  const rng = e.range;
  const row = rng.getRow();
  const col = rng.getColumn();     
  if (as.getName()=='Status' && col == 13 && row > 15){      
      if (rng.getValue()!=''){
          rng.setValue(`=HYPERLINK("https://example.com/${rng.getValue()}","Go to link for ${rng.getValue()}")`)
      }
      else{
          rng.clearContent();
      }      
  }      
}

當心:

  • 這是一個onEdit觸發器,當您在工作表StatusM16:M范圍內編輯單元格時,它將自動激活。 您不能手動執行它,它不會那樣工作。 在這里查看一個簡單的onEdit觸發器是如何工作的。

插圖:

在此處輸入圖像描述

暫無
暫無

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

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