我在Google表格中遇到问题,在大型电子表格中跟踪单元格所属的行和列。
真正有用且简单的是“十字准线”功能,当激活时,会自动突出显示当前所选单元格的行和列,这样当我选择一个单元格时,它看起来如此:
这使得在更大的电子表格上跟踪单元格的工作变得更加容易。理想情况下,它可以设置为仅突出显示行,仅突出显示列或两者,但根据我的需要,我希望自动突出显示两者。
这一切都可能吗?有脚本可以做到吗?
答案 0 :(得分:1)
CTRL + SPACE
突出显示列
SHIFT + SPACE
突出显示该行
不幸的是,他们不能一起工作。
如果我这个周末有时间,我会写一个附加组件。
答案 1 :(得分:0)
好吧,我找到了一种自动选择整行的方法。我刚刚安装了快捷方式管理器来修改按键行为。我在这里做了详细的解释:https://stackoverflow.com/a/61516763/9356315
我认为您可以轻松地扩展它以同时选择整个列。我希望这会有所帮助。
答案 2 :(得分:0)
实际上是在解决同一问题。 我刚刚创建了一个脚本,然后使用允许我配置快捷方式的宏对其进行调用。
function highlightCoords() {
var ss = SpreadsheetApp.getActive();
var s = ss.getActiveSheet();
var a = ss.getActiveCell();
var col = a.getColumn();
var row = a.getRow();
var r = s.getRange(row, 1, 1, col-1);
var c = s.getRange(1, col, row-1, 1);
var ar = s.getRange(row, col);
ss.getRangeList([r.getA1Notation(), c.getA1Notation(), ar.getA1Notation()]).activate();
};
然后我的宏将触发该功能。
为方便通话,将关联快捷方式。 很简单,例如:[Ctrl + Alt + Shift + 1]
请注意,将选择活动单元以使F2可供版本
答案 3 :(得分:0)
你可以用脚本来完成。本文详细解释了如何突出显示行、列和十字准线:https://jec.fyi/blog/highlight-apps-script
答案 4 :(得分:0)
var userProperties = PropertiesService.getUserProperties();
var H_MODE = 'M';
function getMode() {
return userProperties.getProperty(H_MODE);
}
function setMode(m) {
userProperties.setProperty(H_MODE,m);
}
function createHighlightMenu() {
setMode('off');
SpreadsheetApp
.getActiveSpreadsheet()
.addMenu('Highlight', generateMenu());
}
function updateHighlightMenu() {
SpreadsheetApp
.getActiveSpreadsheet()
.updateMenu('Highlight', generateMenu());
}
function generateMenu() {
return [
{name: (getMode()=='off'? " ✓ " :'')+'Off', functionName: 'setOff'},
{name: (getMode()=='row'? " ✓ " :'')+' Highlight row', functionName: 'setHighlightRow'},
{name: (getMode()=='column'? " ✓ " :'')+' Highlight column', functionName: 'setHighlightCol'},
{name: (getMode()=='crosshair'? " ✓ " :'')+' Highlight crosshair', functionName: 'setHighlightCrosshair'}
];
}
function setOff() {
setMode('off');
updateHighlightMenu();
}
function setHighlightRow(){
setMode('row');
updateHighlightMenu();
}
function setHighlightCol(){
setMode('column');
updateHighlightMenu();
}
function setHighlightCrosshair(){
setMode('crosshair');
updateHighlightMenu();
}
function highlight(type) {
const ss = SpreadsheetApp.getActive();
const s = ss.getActiveSheet();
const a = ss.getActiveCell();
const col = a.getColumn();
const row = a.getRow();
const maxColumns = s.getMaxColumns();
const maxRows = s.getMaxRows();
const c = s.getRange(1, col, maxRows, 1);
const r = s.getRange(row, 1, 1, maxColumns);
const ar = s.getRange(row, col);
var ranges = [];
if (type != 'column') ranges.push(r.getA1Notation());
if (type != 'row') ranges.push(c.getA1Notation());
ranges.push(ar.getA1Notation());
console.log('Ranges ',ranges);
s.getRangeList(ranges).activate();
console.log('Active sheet ',s.getName());
console.log('Active', s.getActiveRangeList());
}
function highlightRow() {
highlight('row');
}
function highlightColumn() {
highlight('column');
}
function highlightCrosshair() {
highlight('crosshair');
};
// Uncomment this function if you need
function onSelectionChange(e) {
console.log('onSelChange',getMode());
highlight(getMode());
}
对 https://jec.fyi/blog/highlight-apps-script 代码的一个小补充