超链接到具有相同 name/value - Google 工作表的单元格范围

Hyperlink to range of cells with same name/value - Google Sheets

我有一个 Spreadsheet,其中有一个 DASHBOARD + 多个 (300+) sheets(在同一个 spreadsheet 内)。在仪表板中,我有一个范围列,其中包含所有 sheets.

的名称

我想自动将所有单元格超链接到具有相应名称的 sheet。

Example:

您不需要超链接即可快速跳转到另一个 sheet。相反,使用名称框。它位于 ƒ 符号左侧的公式栏中。

单击名称框并键入 sheet 名称的一部分以快速找到 sheet,然后按 Enter 转到 sheet.

试试这个脚本,但还要添加对您需要转到的单元格的搜索(这可以通过 C 列中的公式完成)或根据更多信息进行过滤...

function onEdit(event){
  var sh = event.source.getActiveSheet();
  var cel = event.source.getActiveRange();
  if (sh.getName()=='DASHBOARD' && cel.getColumn()==2 && cel.getRow()>1 && cel.getValue()){
    try {
      cel.setValue(!cel.getValue())
      // add the right destination in the targeted sheet ...
      SpreadsheetApp.getActiveSpreadsheet().getSheetByName(cel.offset(0,-1).getValue()).activate()
    }
    catch(err){

    }
  }
}

试试这个:

function convertToLinks() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheetByName("DASHBOARD");
  var range = sh.getRange("A11:A15");
  var data = range.getValues();
  var formulaArr = [];
  data.forEach(sheet => {
    var targetSheet = ss.getSheetByName(sheet[0]);
    if(targetSheet){
      var url = ss.getUrl() + '#gid=' + targetSheet.getSheetId(); 
      formulaArr.push(['=HYPERLINK("'+ url +'","'+ sheet[0] +'")'])
    }else{
      formulaArr.push([sheet[0]]);
    }
  })
  range.setValues(formulaArr);
}

上面的脚本会将单元格 A11:A15 转换为相应工作表的超链接。

示例:

之前:

之后:

参考文献: