我正在寻找有关一个宏的帮助,该宏将显示一组列,然后显示另一个宏,该宏将显示分配给两个单独按钮的同一组列。
目前,我有Hide Bootcamp
和Show Bootcamp
按钮可以完成此任务,但我知道需要将列添加到此工作表中,以免将来出现此问题( <> I列或BJ:CO列)。有没有人能在将列添加/删除到工作表时保持范围完整性的解决方案?
工作表链接
https://docs.google.com/spreadsheets/d/17H9QMJ7Lmznon8G0dO4MGkidE0b6ymrvgt7fTE9gQBw/edit?usp=sharing
下面的当前代码
隐藏列
function HideBootcamp() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('I:I').activate();
spreadsheet.getActiveSheet().hideColumns(spreadsheet.getActiveRange().getColumn(), spreadsheet.getActiveRange().getNumColumns());
spreadsheet.getRange('BJ:CO').activate();
spreadsheet.getActiveSheet().hideColumns(spreadsheet.getActiveRange().getColumn(), spreadsheet.getActiveRange().getNumColumns());
spreadsheet.getRange('A2').activate();
};
显示列
function ShowBootcamp() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('I:I').activate();
spreadsheet.getActiveSheet().showColumns(spreadsheet.getActiveRange().getColumn(), spreadsheet.getActiveRange().getNumColumns());
spreadsheet.getRange('BJ:CO').activate();
spreadsheet.getActiveSheet().showColumns(spreadsheet.getActiveRange().getColumn(), spreadsheet.getActiveRange().getNumColumns());
spreadsheet.getRange('A2').activate();
};
答案 0 :(得分:0)
如果您在上面的评论中对我的两个问题回答是,那么这将为您隐藏您的专栏。您所要做的就是为函数指定第一行中列的名称,当然您可能必须更改工作表名称。
function hideColumnByName(name) {
var name=name||'HDR10';//debug
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Master');
var rg=sh.getRange(1,1,1,sh.getLastColumn())
var hA=rg.getValues()[0];
sh.hideColumns(hA.indexOf(name)+1);
}
答案 1 :(得分:0)
缺少激活范围。
function hideColumnByName(name) {
var name=name||'HDR10';//debug
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Master');
var rg=sh.getRange(1,1,1,sh.getLastColumn()).activate();
var hA=rg.getValues()[0];
sh.hideColumns(hA.indexOf(name)+1);
}