2017-06-20 61 views
-1

我一直在寻找解决方案,我发现的唯一不涉及脚本的方法需要手动进入每列的底部。我的电子表格确实包含空白单元格,所以我无法使用Ctrl键向下移动。我希望能够选择一列(或一组列),但不包括标题。或者,替代方法是全选,然后手动取消选择标题行。据Google称,取消选择目前在表格上不可用。如果有一些简单的方法不涉及脚本,那将是非常好的,因为我真的不知道脚本太多,而且这是我在很多表单上多次使用的东西,所以不得不复制横跨纸张的脚本不会听起来有吸引力。我理论上知道如果一个成功的脚本可以创建附加组件,但这也是我不熟悉的。Google表格 - 选择列减去标题(或取消选择单元格)

+1

我不明白在我的问题上的负面反馈。我搜索了一个答案,但没有找到任何答案。我知道这对程序员来说可能是一件容易的事情,但我不是,我是一名平面设计师,需要帮助处理一些电子表格。我觉得应该可以这样,但我不知道脚本,所以我想我会来一个有帮助的社区提供建议。如果这可以保证负面的评价,请让我知道为什么我可以避免这样的错误。 – CBJ

+0

负面反馈可能来自两个相互关联的来源。首先,你在Stack Overflow(一个编程问答网站)上提出这个问题,但是特别要求避免使用脚本(唯一可能使这个编程相关的东西)。其次,你基本上要求有人为你写一个完整的解决方案,Stack Overflow成员通常会对此不满意。我们很乐意为您提供代码,但我们通常不会编写完整的解决方案。将来,您可能会考虑询问有关如何在[WebApps.SE]上有效使用Google Apps的问题。 –

+0

如果说我所“问”的是什么,请参考哪里,因为我不记得我在哪里要求任何人为我写“整个解决方案”。我有一个问题,我认为可能有一个非常简单的解决方案,但我无法找到答案,并认为也许这方面有更多经验的人可能知道。而且我没有要求避免剧本,我说如果有一个我不知道的简单方法,那将会很棒。如果可能,想要了解简单的方法有什么不对吗?我涉及到的脚本的答案不仅有所帮助,而且教会了我一些事情。 – CBJ

回答

0

选择列,但跳过标题行

它可能不是完美的,但这里的东西,可以帮助。你可以将n设置为任何你想要的。它默认为2,所以第一行保持未选中状态。但是,您可以创建其他版本,如下图所示:

function selectColumnMinus(n) 
{ 
    var n=(typeof(n)!='undefined')?n:2; 
    var ss=SpreadsheetApp.getActiveSpreadsheet(); 
    var sht=ss.getActiveSheet(); 
    var cols=sht.getActiveCell().getA1Notation().replace(/\d+/,''); 
    var rngs=cols + n + ':' + cols; 
    var outrng=sht.getRange(rngs); 
    outrng.activate(); 
} 

function minus3() 
{ 
    selectColumnMinus(3); 
} 

只要确保你选择的左上角是你想要的列。

我开始考虑可能选择多个列也许很有用。所以在这里。它还提供了一个提示输入要跳过顶部的行数。

function selectColumnsSkipHeader() 
{ 
    var resp=SpreadsheetApp.getUi().prompt('Rows to Skip', 'Enter numbers of rows to skip at top.', SpreadsheetApp.getUi().ButtonSet.OK); 
    var skip=Number(resp.getResponseText()); 
    var skip=(typeof(skip)!='undefined')?skip:1; 
    var ss=SpreadsheetApp.getActiveSpreadsheet(); 
    var sht=ss.getActiveSheet(); 
    var rng=sht.getActiveRange(); 
    var rngA= sht.getActiveRange().getA1Notation().split(':'); 
    var ul=rngA[0].replace(/\d+/,''); 
    if(rng.getNumColumns()>1) 
    { 
     var lr=rngA[1].replace(/\d+/,''); 
    } 
    else 
    { 
     lr=ul; 
    } 
    var rngs=ul + ++skip + ':' + lr; 
    var outrng=sht.getRange(rngs); 
    outrng.activate(); 
} 

我这一点发挥各地和另一种方式避免了提示的需要得到行跳过的次数。相反,只需将选择的顶部放置在您希望选择开始的行上。

function selectColumnsSkipHeader1() 
{ 
    var ss=SpreadsheetApp.getActiveSpreadsheet(); 
    var sht=ss.getActiveSheet(); 
    var rng=sht.getActiveRange(); 
    var rngA= sht.getActiveRange().getA1Notation().split(':'); 
    var ul=rngA[0].replace(/\d+/,''); 
    if(rng.getNumColumns()>1) 
    { 
     var lr=rngA[1].replace(/\d+/,''); 
    } 
    else 
    { 
     lr=ul; 
    } 
    var rngs=ul + rng.getRow() + ':' + lr; 
    var outrng=sht.getRange(rngs); 
    outrng.activate(); 
} 
+0

谢谢。这似乎是在做,但只适用于单列,如果我选择一组4列,它只会选择最左边的一列,不包括标题。但是,这比每次滚动数千行更好。如果Sheets刚刚允许按Ctrl取消选择,就像这个词所使用的几乎所有其他启用选择的系统一样。 – CBJ

+0

@CBJ这是您请求的多列解决方案。如果你检查我的答案,我会很感激。谢谢 – Cooper

+0

这很好用!这需要传播。我发现的所有内容都包含快捷键,让你更快地到达底部,但它仍然需要手动选择范围。你有没有考虑将它作为附加组件发布?我敢打赌,很多人都会喜欢它。 – CBJ