2024-04-21|閱讀時間 ‧ 約 28 分鐘

Google Sheets 十字光標、一字光標,再也不怕看錯行資料

✍️版權所有,未經授權,請勿複製轉載

E70的影片中,Meiko跟大家分享Excel版本的十字光標設定,收到很多同學的回饋,最近有同學提到,也想在Google Sheets上執行光標標註的功能,Meiko原以為蠻簡單的,後來實操之後發現並不容易,因為Google Sheets上沒有「F9」按鍵驅動的功能,可能需要使用觸發程序的方式,後來想要簡單操作一點,於是請教了AI,意外的設計出一個光標控制面板,我覺得很方便,分享給大家,除了與AI溝通有花了一點時間之外,其實拿到程式後的設定,就只是複製貼上,非常的容易,有興趣的同學可以跟著操作看看~~

想了解Excel版本十字光標➡️https://youtu.be/hq26Vld62GM

控制面板樣貌

在Google sheets功能區上,可以自訂一個功能索引標籤,例如:光標面板,點按後,開啟下拉清單,啟動光標面板

啟動後,於視窗右側,會看到[光標面板]控制區,有三個按鈕,分別是[十字光標]、[水平光標]、[關閉光標],按鈕名稱都可以自行修改。

點按[十字光標]按鈕之後,可以在游標所在處,垂直欄+水平列利用醒目網底色標示

如果只需要標註橫列,則點按[水平光標],即可再由標所在處,整列標註網底顏色

當不需要光標標註的時候,再點按[關閉光標]的按鈕就可以囉

當不需要光標光能時,則按下光標控制面板的X就可以關閉光標控制視窗囉。

主要操作:

詳細操作細節請參考G11影片,主要分為兩個部分(下方有影片可參考)

  1. 生成程式碼(這部分有點難度,Meiko已經幫大家利用AI產生了,如下方程式碼,影片中有稍微提到Meiko與AI溝通的過程)
  2. 程式碼貼入Google Apps Script,這部分非常容易,只要簡單的複製貼上即可達成(如果只需要知道如何產生光標面板,那只要看這部分的操作就好)。

主程式碼

// 當試算表開啟時自動執行
function onOpen() {
var ui = SpreadsheetApp.getUi();
// 創建自訂菜單
ui.createMenu('光標控制')
.addItem('啟動右側光標面板', 'showSidebar') // 在功能表列中添加一個項目來顯示側邊欄
.addToUi(); // 將功能添加到使用者界面
}

// 顯示側邊欄
function showSidebar() {
var html = HtmlService.createHtmlOutputFromFile('Sidebar')
.setTitle('光標控制')
.setWidth(300);
SpreadsheetApp.getUi().showSidebar(html);
}

// 更新十字光標功能
function updateCrosshair() {
updateCursor(true, true);
}

// 僅使用水平列光標功能
function useRowCursor() {
updateCursor(true, false);
}

// 更新光標共用函式
function updateCursor(includeRow, includeColumn) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var activeCell = sheet.getActiveCell();
var row = activeCell.getRow();
var column = activeCell.getColumn();
var rangeSize = 25;

var rules = sheet.getConditionalFormatRules();
rules = rules.filter(rule => !rule.getBooleanCondition());

if (includeRow) {
var rowRange = sheet.getRange(Math.max(1, row - rangeSize), 1, Math.min(50, row + rangeSize - row + 1), sheet.getMaxColumns());
var rowRule = SpreadsheetApp.newConditionalFormatRule()
.whenFormulaSatisfied('=ROW() = ' + row)
.setBackground('#FFFF00')
.setRanges([rowRange])
.build();
rules.push(rowRule);
}

if (includeColumn) {
var columnRange = sheet.getRange(1, Math.max(1, column - rangeSize), sheet.getMaxRows(), Math.min(50, column + rangeSize - column + 1));
var columnRule = SpreadsheetApp.newConditionalFormatRule()
.whenFormulaSatisfied('=COLUMN() = ' + column)
.setBackground('#FFFF00')
.setRanges([columnRange])
.build();
rules.push(columnRule);
}

sheet.setConditionalFormatRules(rules);
}

// 關閉光標功能
function disableCursor() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var rules = sheet.getConditionalFormatRules();
rules = rules.filter(rule => !rule.getBooleanCondition());
sheet.setConditionalFormatRules(rules);
}

// HTML側邊欄頁面設計
function doGet() {
return HtmlService.createHtmlOutputFromFile('Sidebar')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

HTML程式碼

<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<button onclick="google.script.run.updateCrosshair()">十字光標</button>
<button onclick="google.script.run.useRowCursor()">水平光標</button>
<button onclick="google.script.run.disableCursor()">關閉光標</button>
</body>
</html>

影片教學



購書優惠

好書介紹:Excel 公式+函數超實用字典:515 個函數+1028 個範例
旗標知識講堂➤https://www.facebook.com/flagforum
旗標蝦皮商城➤ https://shopee.tw/flag23311033 (可使用折扣碼)
.2024/04/01-2024/06/30 優惠碼:【FLAGM0006】 原9折再打84折
.2024/07/01-2024/09/30 優惠碼:【FLAGM0007】 原9折再打84折
.2024/10/01-2024/12/31 優惠碼:【FLAGM0008】 原9折再打84折

好用工具推薦

Ⓜ️Gamma AI簡報
Ⓜ️ LightPDF 官方網站
Ⓜ️新手影片剪輯線上平台 FlexClip
Ⓜ️Flot.ai 文案寫作AI工具 折扣碼 【 MEIKO 】20%優惠
Ⓜ️DesignEvo LOGO 折扣碼 折扣碼【 MeikoDE20 】20%優惠


如果文章對你有幫助,請留言讓Meiko知道唷✍️
還請幫Meiko按❤️、分享、收藏,別忘了要按【追蹤】
版權所有,請勿複製 | 歡迎分享Meiko微課頻道 | Meiko教學筆記


分享至
成為作者繼續創作的動力吧!
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

作者的相關文章

Meiko微課頻道的沙龍 的其他內容

你可能也想看

發表回應

成為會員 後即可發表留言
© 2024 vocus All rights reserved.