要在电子表格中搜索值,请转到该值

时间:2017-02-06 18:00:24

标签: google-apps-script google-sheets

在谷歌电子表格中(不是excel!),

我有两张床单。一个名为"公司",一个名为" Contacts" "公司" sheet只是A列中的公司名称列表,没有别的。 "联系人" sheet是联系人详细信息的电子表格,但他们所在的公司也在A列中。

我想弄清楚如何编写一个脚本来查看活动单元格的值(在"公司"表单中),然后在公司列中搜索该值"联系人"单击,然后转到第二个工作表中的该单元格,并使其成为活动单元格。

我已经弄明白了一些;我在搜索"联系人"的部分遇到了最大的麻烦。 sheet的列A用于匹配值,然后转到该值以使其成为活动单元格

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

将以下代码粘贴到脚本编辑器中,保存并刷新电子表格。在“公司”表单中单击要搜索的单元格,然后单击“自定义功能”菜单和“搜索公司”。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var ui = SpreadsheetApp.getUi();

function onOpen(e) {
    ui.createMenu('Custom Functions')
    .addItem('Search for company', 'myFunction')
    .addToUi()
}

function myFunction() {
    var searchSheet = ss.getSheetByName('Companies');
    var targetSheet = ss.getSheetByName('Contacts');

    var searchTerm = searchSheet.getActiveCell().getValue();

    var searchRange = targetSheet.getRange(1, 1, targetSheet.getLastRow()).getValues();

    for (var i = 0; i < searchRange.length; i++) {
        if (searchTerm == searchRange[i][0]) {
            break;
        }
    }

    var row = targetSheet.getRange(i + 1, 1);

    targetSheet.setActiveRange(row);

}