在Excel VBA可以自訂函數
Google Sheets 也是可以自訂函數
因此,嘗試將VBA的程式碼改為 Google Apps Script的格式
需要注意的地方仍然是字串的連結
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/** * Google calendar render link * * @param {string} render 事件名稱 * @param {string} datatime 起訖時間,時間格式為 YYYYMMDDTHHMMSS/YYYYMMDDTHHMMSS * @param {string} desc 活動描述,使用 %0A 作為換行 * @param {string} location 活動地點 * @return render link 超連結Html標籤 * @customfunction */ function renderlink(render, datatime, desc, location) { //var result= "<a target='" + "_blank'" + " href='" + "https://www.google.com/calendar/event?action=TEMPLATE&text=" + render + "&dates=" + datatime + "&details=" + desc + "&location=" + location + "&trp=false'" + ">新增至行事曆</a>"; var result= "<a target='_blank' href='https://www.google.com/calendar/event?action=TEMPLATE&text=" + render + "&dates=" + datatime + "&details=" + desc + "&location=" + location + "&trp=false'>新增至行事曆</a>"; //var result= "<a target=\"" + "_blank\"" + "href=\"https://www.google.com/calendar/event?action=TEMPLATE&text=" + render + "&dates=" + datatime + "&details=" + desc + "&location=" + location + "&trp=false\">新增至行事曆</a>"; Logger.log(result); return result; } |
字串的連結符號是 +
可以有兩種方式進行字串連結
1.將超連結需要的 ” 改成 ‘ ,然後再處理變數的連結即可
var result= "<a target='" + "_blank'" + " href='" + "https://www.google.com/calendar/event?action=TEMPLATE&text=" + render + "&dates=" + datatime + "&details=" + desc + "&location=" + location + "&trp=false'" + ">新增至行事曆</a>" ;
可以再精簡成
var result= "<a target='_blank' href='https://www.google.com/calendar/event?action=TEMPLATE&text=" + render + "&dates=" + datatime + "&details=" + desc + "&location=" + location + "&trp=false'>新增至行事曆</a>";
2.另一種方式是用跳脫字元 \
var result= "<a target=\"" + "_blank\" href=\"https://www.google.com/calendar/event?action=TEMPLATE&text=" + render + "&dates=" + datatime + "&details=" + desc + "&location=" + location + "&trp=false\">新增至行事曆</a>";
整體的函示便是從試算表接收傳來所需的參數
進行字串連結之後,再回傳數值
function renderlink(render, datatime, desc, location) { var result=.....return result;}
自訂函數也可以利用JSDoc格式設定程式的說明內容
1 2 3 4 5 6 7 8 9 10 |
/** * Google calendar render link * * @param {string} render 事件名稱 * @param {string} datatime 起訖時間,時間格式為 YYYYMMDDTHHMMSS/YYYYMMDDTHHMMSS * @param {string} desc 活動描述,使用 %0A 作為換行 * @param {string} location 活動地點 * @return render link 超連結Html標籤 * @customfunction */ |