wps表格内编写一个JSA宏用来背单词

一、需求

第一列正常显示 第二列第三列默认隐藏 点击第二列或者第三列的单元格该单元格显示 再次点击后该单元格隐藏 第二列和第三列的其他单元格默认隐藏

二、代码

javascript 复制代码
/**
 * WPS JSA 宏代码
 * 功能:
 * 1. 工作表激活时,默认隐藏第2列(B)和第3列(C)的所有单元格内容。
 * 2. 点击第2列或第3列的任意单元格,切换该单元格的显示/隐藏状态。
 *    - 如果当前隐藏,则显示。
 *    - 如果当前显示,则再次隐藏。
 * 3. 第1列(A)保持正常显示,不受影响。
 * 
 * 注意:此代码应放置在工作表对象(如Sheet1)的代码窗口中,以响应事件。
 * 如果放在普通模块,需要手动绑定事件或使用其他方式触发,但工作表对象是最佳实践。
 */

// 全局变量,用于记录最后操作的单元格,可选功能:点击新单元格时自动隐藏旧单元格
// 根据需求"再次点击后该单元格隐藏",这里采用仅切换当前点击单元格状态的逻辑,
// 若需"互斥显示"(即同时只显示一个),可启用下面的互斥逻辑。

let lastVisibleCell = null; // 记录当前显示的单元格,用于互斥逻辑

function Worksheet_Activate() {
    // 当工作表被激活时,初始化隐藏B列和C列
    hideColumnContent(2);
    hideColumnContent(3);
}

function Worksheet_SelectionChange(Target) {
    // 当选择区域改变时触发
    
    // 1. 确保只选中了一个单元格
    if (Target.Count > 1) return;
    
    let col = Target.Column;
    
    // 2. 检查是否在第2列或第3列
    if (col !== 2 && col !== 3) return;
    
    // 3. 切换当前单元格的显示/隐藏状态
    toggleCellVisibility(Target);
    
    // --- 可选:互斥逻辑 ---
    // 如果希望同一时间B/C列只有一个单元格显示,取消以下注释
    /*
    if (lastVisibleCell && lastVisibleCell.Address !== Target.Address) {
        // 隐藏上一个显示的单元格
        setCellHidden(lastVisibleCell);
    }
    // 如果当前单元格变为显示状态,则更新记录
    if (Target.NumberFormatLocal !== ";;;") {
        lastVisibleCell = Target;
    } else {
        // 如果当前单元格被隐藏,且它是之前记录的,则清空记录
        if (lastVisibleCell && lastVisibleCell.Address === Target.Address) {
            lastVisibleCell = null;
        }
    }
    */
    // ---------------------
}

/**
 * 隐藏指定列的所有单元格内容
 * @param {number} colIndex - 列索引 (1-based)
 */
function hideColumnContent(colIndex) {
    let sheet = Application.ActiveSheet;
    // 获取整列
    let col = sheet.Columns.Item(colIndex);
    // 设置自定义格式为 ;;; (视觉隐藏)
    col.NumberFormatLocal = ";;;";
}

/**
 * 切换单个单元格的显示/隐藏状态
 * @param {Range} cell - 目标单元格对象
 */
function toggleCellVisibility(cell) {
    // 检查当前格式是否为隐藏格式
    if (cell.NumberFormatLocal === ";;;") {
        // 如果是隐藏的,则显示(恢复为常规格式)
        cell.NumberFormatLocal = "General";
    } else {
        // 如果是显示的,则隐藏
        cell.NumberFormatLocal = ";;;";
    }
}

/**
 * 强制隐藏单个单元格
 * @param {Range} cell - 目标单元格对象
 */
function setCellHidden(cell) {
    cell.NumberFormatLocal = ";;;";
}

三、运行

WPS->工具->WPS宏编辑器->插入代码->保存

手机和pc端通用,双击显示,单击其他单元格隐藏。

相关推荐
小脑斧1232 小时前
DBExport2.51 Oracle数据库查询与Excel数据导出工具
数据库·oracle·excel
努力成为大牛吧2 小时前
Word/WPS 论文参考文献排版及交叉引用注意事项
word·wps
开开心心_Every3 小时前
跨平台高速下载工具,支持浏览器功能强大
运维·服务器·随机森林·pdf·电脑·逻辑回归·excel
AC赳赳老秦18 小时前
OpenClaw权限管理实操:团队共享Agent,设置操作权限,保障数据安全
服务器·开发语言·前端·javascript·excel·deepseek·openclaw
Teable任意门互动1 天前
多维表格哪家最好用最容易上手?国产开源 Teable 测评
开发语言·数据库·开源·excel·飞书·开源软件
wtsolutions1 天前
Excel-to-JSON Local App - Secure Offline Excel to JSON Conversion
json·excel
扬帆破浪2 天前
开源免费的WPS AI 软件 察元AI文档助手:链路 002:executeAssistantFromRibbon 与任务进度窗
人工智能·开源·wps
程序员 _孜然2 天前
关闭WPS右键菜单(win10,2026)
wps
qq_452396232 天前
第七篇:《数据驱动测试:利用Excel/JSON/CSV管理测试数据》
json·excel