【问题标题】:How to insert the URL for the specific sheet into a cell in a Google Sheets如何将特定工作表的 URL 插入到 Google 表格中的单元格中
【发布时间】:2021-05-17 15:15:01
【问题描述】:

我有一张名为“志愿者”的表格,其中包含志愿者姓名列表,还有另一张表格,其中包含相同的志愿者姓名以及其他信息。我已经设法在两张表格之间设置了超链接,但要做到这一点,我需要知道特定表格(称为志愿者)的唯一 URL。

尽管在这里搜索了几个小时,但我找不到一种简单的方法来找到相关工作表的 URL 并将其插入另一张工作表上的指定单元格(称为公式)。

下面提供了我找到的代码。不幸的是,当我尝试复制工作表时,这个公式并不总是有效。

如果有人能提供任何帮助,我们将不胜感激。 谢谢

    var SS = SpreadsheetApp.getActiveSpreadsheet();
    var ss = SS.getSheetByName('Volunteers');
    var urlVol = '';
    urlVol += SS.getUrl();
    urlVol += '#gid=';
    urlVol += ss.getSheetId(); 
    return urlVol; 
  }

然后将 "=hyperlink(GetVolUrl())" 插入指定单元格以检索 URL。

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    获取工作表 URL 的函数:

    function getSheetUrls() {
      const ss = SpreadsheetApp.getActive();
      ss.getSheets().forEach(sh=>{
        let url = Utilities.formatString('Name:%s Url:%s#gid=%s',sh.getName(),ss.getUrl(),sh.getSheetId())
        Logger.log(url)
      });  
    }
    
    
    
    function postSheetUrls() {
      const ss = SpreadsheetApp.getActive();
      const sh = ss.getSheetByName('Sheet1');
      sh.clearContents();
      let vs = [['Sheet Name', 'Link']];
      ss.getSheets().forEach(s => {
        let url = Utilities.formatString('%s#gid=%s', ss.getUrl(), s.getSheetId());
        vs.push([s.getName(), `=hyperlink("${url}","${s.getName()}")`]);
      });
      sh.getRange(1, 1, vs.length, vs[0].length).setValues(vs);
    }
    

    图片:

    【讨论】:

    • 非常感谢@MetaMan 的帮助!我能够调整这段代码来做我需要的事情,它解决了我在使用不同的电子表格时遇到的另一个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    相关资源
    最近更新 更多