英文:
Google Sheets Auto HyperLink to Google Earth Web?
问题
I understand your request. Here's the translated content without the code:
我在想是否有一种简单的方法可以将包含地址的列转换为Google Earth Web上的超链接。
如果您尝试访问https://earth.google.com/web/search/New York,它将显示New York,这意味着我需要以某种方式使用https://earth.google.com/web/search/和单元格中的self_cell_value,当然,超链接的文本可以是单元格内的文本(地址)。
有什么简便的方法可以做到这一点吗?Arrayformula等需要放在另一列/单元格上,这不是我想要的。只需将地址列转换为如上所述的超链接。在添加新地址时,它应该自动发生。
谢谢。
英文:
Was wondering if there's simple way to convert column which is full with addresses to hyperlink for Google Earth web.
If you try https://earth.google.com/web/search/New York it will show New York, which means
that I need https://earth.google.com/web/search/ & self_cell_value somehow, of course the text of the hyperlink can be whatever the text (address) is inside the cell.
Any tips how to do this easy ? Arrayformula and stuff need to be placed onto another column/cells, which is something that I don't want. Just the column of addresses converted into hyperlinks as mentioned. Upon adding new addresses it should be automatically happening.
Thanks
答案1
得分: 1
这是一个示例脚本,当编辑 Sheet1 中的列 A 时,将触发脚本,并将值中的空格替换为 +。
所以 https://earth.google.com/web/search/New York 将自动变为 https://earth.google.com/web/search/New+York。
您可以根据需要编辑列号或工作表名称。
英文:
This is a sample script that will trigger when column A in Sheet1 is edited, it will take the values and replace the space with +.
So https://earth.google.com/web/search/New York will change to https://earth.google.com/web/search/New+York automatically.
You can edit the column number or the sheet name as required.
function onEdit(e) {
  // get the range where the edit once done
  let range = e.range
  // get the column number where the changes is done
  let working_range = range.getColumn()
  // the Sheet name where the change is done
  let sheet = e.source.getSheetName(); 
  // if statement, if the change was done in Sheet1 
  //and column 1 (column A), the script will trigger
  if (sheet == 'Sheet1' & working_range==1){ 
      // get the range value in column A
      let cell_value = range.getValue().toString();
      // replace the space with a +
      let new_cell_value = cell_value.replace(' ', '+')
      //sets the hyperlink
      let richValue = SpreadsheetApp.newRichTextValue()
      .setText(new_cell_value)
      .setLinkUrl(new_cell_value)
      .build();
      range.setRichTextValue(richValue);
  }
}
This is how it works:
<h3> Update: </h3>
If you add, just one word instead of a URL, you can make this changes to the code to create the hyperlink:
function onEdit(e) {
  // get the range where the edit once done
  let range = e.range
  // get the column number where the changes is done
  let working_range = range.getColumn()
  // the Sheet name where the change is done
  let sheet = e.source.getSheetName(); 
  // if statement, if the change was done in Sheet1 
  //and column 1 (column A), the script will trigger
  if (sheet == 'Sheet1' & working_range==1){ 
      // get the range value in column A
      let cell_value = range.getValue().toString();
      // replace the space with a +
      let new_cell_value = cell_value.replace(' ', '+')
      //sets the hyperlink with the current value in the column 
      // and the URL to Google Earth withut the space 
      let richValue = SpreadsheetApp.newRichTextValue()
      .setText(cell_value)
      .setLinkUrl("https://earth.google.com/web/search/" + new_cell_value)
      .build();
      range.setRichTextValue(richValue);
  }
}
Reference:
答案2
得分: 0
你可以尝试以下公式和下拉菜单:
="https://earth.google.com/web/search/"&C2
或者
你可能想要使用范围:
=INDEX(IF(B6:B="",,$A$5&B6:B))
无论如何,具有多个单词的位置都必须使用+符号连接。
(根据您的范围和区域)请调整公式。
英文:
You can try the following formula and a drop-down
="https://earth.google.com/web/search/"&C2
OR
You may want to use a range
=INDEX(IF(B6:B="",,$A$5&B6:B))
In any case, locations having more than 1 word must be joined using the + sign
(Do adjust the formula according to your ranges and locale)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。




评论