[TOC]
> Fri Apr 23 2021 20:39:05 GMT+0800 (GMT+08:00)
問(wèn)卷調(diào)查:[【金山表單】邀你填寫(xiě) 【W(wǎng)PS Office JavaScript宏(JS宏】](https://f.kdocs.cn/w/BQXgoxcV/)
目前 WPS JS宏在 Windows 版可用。以及部分新生的國(guó)產(chǎn)系統(tǒng)的 WPS Office 2019 (Pro)中。
1. macOS; 不支持
2. 基于 Linux 內(nèi)核的操作系統(tǒng);只有 WPS Office Pro for Linux 專業(yè)版有限支持 JS 宏,但這個(gè)版本還不能公開(kāi)下載(無(wú)處下載),我手上也沒(méi)有……至于開(kāi)源的 WPS Office For Linux 個(gè)人版是不支持 JS 宏的——至少目前還不支持。
編寫(xiě)本書(shū)用的環(huán)境:
* Microsoft Windows \[版本 10.0.19042.928\] 專業(yè)版 64 Bit;
* WPS Office for Windows, version 12 build 10463 (2019 個(gè)人版)
> 盡量升級(jí)到最新版本
> 如果你用的 WPS 不支持 JS宏,那么升級(jí)到最新版應(yīng)該就可以了。WPS Office 專業(yè)版支持 VBA,如何選擇請(qǐng)自行斟酌。
## 只有 VBA 是 WPS Office 和 Micro 365 都支持的
避免有些書(shū)友誤會(huì),有必要解答下:
### 宏方面
1. 只有 VBA 是 WPS Office 和 Micro 365 都支持的(以及Micro Office早期版本),準(zhǔn)確的說(shuō) WPS Office 只是提供兼容 VBA,你得自己"購(gòu)買(mǎi)"并安裝 VBA 支持。
2. JS宏 只能在 WPS Office 中可用(目前僅部分平臺(tái)對(duì)應(yīng)版本支持,比如 macOS 版還不支持 JS宏)。
3. 不管是 JS宏 還是 VBA,文件都必須以支持宏的類型保存才能使用宏。比如`.xlsm`、`.docm`、`.ppsm`等;
4. 一份支持宏的文件(`xlsm`、`.docm`、`.ppsm`)可以同時(shí)存在 JS宏和 VBA,它們?cè)谖募?nèi)部是分開(kāi)存放的。
> * 當(dāng)用 Micro 365/Office 365 打開(kāi)時(shí)可以用 VBA;
> * 當(dāng)用 WPS Office 打開(kāi)時(shí)可以用 JS宏 或者 VBA——如果安裝了 VBA支持的話(非企業(yè)專業(yè)版是需要自己購(gòu)買(mǎi)安裝的),你可以在 JS環(huán)境 和 VBA 環(huán)境之間切換。
> 一句話:目前只有 Windows 平臺(tái)的 WPS Office 版本支持 JS宏。
### 加載項(xiàng)方面
WPS Office 和 微軟 Office 中,使用 WEB 技術(shù)(JavaScript、HTML、CSS)開(kāi)發(fā)的加載項(xiàng)可能并不通用。
## 警告
宏執(zhí)行后的結(jié)果是不能撤銷的(無(wú)法使用<kbd>Ctrl+Z</kbd>),一旦數(shù)據(jù)被清空、覆蓋則不可恢復(fù)(只要沒(méi)有保存,可關(guān)閉之后再打開(kāi)就還在)!因此:
* 不要隨便在宏內(nèi)部定義文件保存語(yǔ)句,如 `Save()` 這類方法。**除非你知道自己在干嘛,否則會(huì)造成不必要的損失**,不是不可以保存只是想給自己反悔的機(jī)會(huì)。
* 當(dāng)你要設(shè)計(jì)宏或者使用未知的宏的時(shí)候,一定要事先備份一份文件,以免因使用宏而造成損失。
## 門(mén)檻
不管是什么宏,多大都是用某種編程語(yǔ)言編寫(xiě)的,JS 宏自然是用 JavaScript 語(yǔ)言作為核心語(yǔ)言,就跟 VBA 用的是 Visual Basic 一樣。沒(méi)點(diǎn) VB 基礎(chǔ),寫(xiě)起 VBA 宏來(lái)也是夠嗆。JavaScript 雖然不算難,但若不會(huì)自然就成門(mén)檻。
### JavaScript
JavaScript 語(yǔ)言,我這里就不廢話了,大家可以自己去了解。如果你不會(huì) JavaScript ,那么想寫(xiě) WPS JS 宏不會(huì)太順暢。
還是直接上傳送門(mén)吧:
* [https://wangdoc.com/javascript/](https://wangdoc.com/javascript/)
* [ES6 入門(mén)教程](https://es6.ruanyifeng.com/)
* [https://developer.mozilla.org/zh-CN/docs/Web/JavaScript](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript)
> 當(dāng)然,因?yàn)槿腴T(mén) JavaScript 并不難,網(wǎng)上教程鋪天蓋地,我只推薦這幾個(gè)。
### JavaScript VS VBA
就眼下來(lái)說(shuō):
* JavaScript 具有廣泛的使用領(lǐng)域,一直服務(wù)于瀏覽器至今。如今更是能脫離瀏覽器獨(dú)立使用——比如說(shuō) Node.js。
> 個(gè)人感覺(jué)學(xué) JavaScript 應(yīng)該實(shí)用些,但這并不影響你同時(shí)學(xué)習(xí)多門(mén)編程語(yǔ)言。
> 我在寫(xiě)這本書(shū)時(shí)就自己用 NodeJS 弄了個(gè)小工具(自然是受益于開(kāi)源了,用僅有的編程能力拼湊而成……)
## 購(gòu)書(shū)福利
1. 書(shū)友群(QQ群: `695601089` )入群請(qǐng)注明購(gòu)買(mǎi)本書(shū)的看云ID(或昵稱),代碼寫(xiě)得爛,看不下去的可以幫我改改;可以一起討論《論一個(gè)表哥/表姐的自我修養(yǎng)》;訴訴苦;找找另一半什么的應(yīng)該都可以的……
2. 購(gòu)書(shū)贈(zèng)送 WPS 表格 加載項(xiàng):目錄生成,馬馬虎虎,能用(如果你是 WPS 會(huì)員那就當(dāng)我沒(méi)說(shuō)……)。
3. 購(gòu)書(shū)贈(zèng)送本地 Markdown 寫(xiě)作小工具(監(jiān)視目錄變化;批量創(chuàng)建 Markdown 文檔;一步生成目錄;檢查引用的圖片資源問(wèn)題)本書(shū)就是用它輔助的,只能說(shuō)夠用吧。已編譯成 `.exe` ,不需要安裝 Node.js,也不需要部署環(huán)境。給運(yùn)行權(quán)限即可使用(添加到系統(tǒng)環(huán)境變量PATH中,粗暴點(diǎn)的直接放C盤(pán)Windows目錄下)


- 1-概述
- 2-升級(jí)吧
- 3-閱讀指南
- 4-答萌新問(wèn)
- 5-iTool 加載項(xiàng)
- 6-iTool下載安裝
- 7-Gitee token 生成
- 8-喜歡用表格當(dāng)下載器的小伙伴看過(guò)來(lái)
- 9-喜歡扒數(shù)據(jù)的小伙伴跟上
- 10-了解 WPS JS宏編輯器
- 11-快捷鍵
- 12-立即窗口
- 13-斷點(diǎn)調(diào)試
- 14-如何在 VB、JS 環(huán)境之間切換
- 15-如何快速進(jìn)入使用、編輯JS宏
- 16-使用宏編輯器需要注意的點(diǎn)
- 17-保存&導(dǎo)出&使用宏
- 18-全局隱藏函數(shù)名(僅WPS)
- 19-如何命名自己的全局函數(shù)的名稱(宏名)
- 20-如何使用別人寫(xiě)的宏
- 21-如何修改錄制好的宏
- 22-WPS 宏中可用的 JS 庫(kù)
- 23-將 Lodash 裝進(jìn) WPS JS宏
- 24-使用 Moment.js
- 25-用 Papa Parse 進(jìn)行JSON、CSV 互轉(zhuǎn)
- 26-Lodash.js源碼
- 27-Moment.js源碼
- 28-papaparse.js源碼
- 29-WPS JSAPI
- 30-對(duì)象名中英文對(duì)照表
- 31-事件匯總
- 32-對(duì)象屬性的使用
- 33-從 Excel VBA 宏到 WPS JS宏
- 34-從 Visual Basic Script 轉(zhuǎn)到 JavaScript
- 35-fileSystem文件系統(tǒng)
- 36-Open 與 Write
- 37-將內(nèi)容寫(xiě)入 TXT 文件
- 38-Dir 函數(shù)讀文件夾
- 39-關(guān)于顏色
- 40-表單、ActiveX控件
- 41-控件樣式
- 42-數(shù)據(jù)綁定
- 43-解決“我是誰(shuí),我在哪”的問(wèn)題
- 44-繞坑:那些奇奇怪怪的問(wèn)題
- 45-警惕:宏操作對(duì)象限制
- 46-別造輪子了,用現(xiàn)成的吧
- 47-Item 屬性快把你逼瘋了吧
- 48-空單元格的值是什么
- 49-單元格區(qū)域(多個(gè)單元格)的值
- 50-編譯參數(shù)禁止項(xiàng)開(kāi)關(guān)導(dǎo)致的問(wèn)題
- 51-代碼上下文帶來(lái)的問(wèn)題
- 52-API 中方法函數(shù)參數(shù)的問(wèn)題
- 53-結(jié)束進(jìn)程吧
- 54-福利:WPS 表格 Modules 開(kāi)箱即用
- 55-最后一格可用空單元格總在變?幫你追上它
- 56-判斷一個(gè)單元格是不是在指定區(qū)域里
- 57-工作表類
- 58-單元格讀取封裝
- 59-WPS JS 加載項(xiàng)
- 60-加載項(xiàng)開(kāi)發(fā)繞坑
- 61-開(kāi)發(fā)
- 62-部署、分發(fā)
- 63-安裝、卸載加載項(xiàng)
- 64-更智能的處理加載項(xiàng)的安裝
- 65-WPS 控件點(diǎn)擊之后報(bào)錯(cuò):Error: arguments error
- 66-對(duì) wpsjs npm 包的一些改進(jìn)
- 67-加載項(xiàng)中 TaskPane 和 Dialog之間的差別
- 68-怎么解決 ShowDialog 窗口無(wú)限彈出?
- 69-Custom UI
- 70-控制控件在不同應(yīng)用上的顯示和隱藏
- 71-本地化處理
- 72-加載項(xiàng)示例和自建工具
- 73-如何保證在無(wú) WEB 環(huán)境下加載項(xiàng)依舊正常工作
- 74-WPS 對(duì) customUI 組件的支持程度
- 75-如何讓加載項(xiàng)的 input 類元素準(zhǔn)確關(guān)聯(lián) SheetSelectionChange 事件
- 76-從零開(kāi)始開(kāi)發(fā)一個(gè)簡(jiǎn)易的 JS 加載項(xiàng)
- 77-搭建項(xiàng)目
- 78-插件規(guī)劃
- 79-第一個(gè) ribbonUI 控件
- 80-第一個(gè)彈窗 confirm
- 81-第一個(gè) Web 彈窗: ShowDialog
- 82-第一個(gè)側(cè)欄 TaskPane
- 83-打包第一個(gè)版本
- 84-RibbonUI 控件不完全示例
- 85-基本結(jié)構(gòu)
- 86-WPS JS加載項(xiàng) RibbonUI 控件 API 與 VBE API 的差別
- 87-控件屬性設(shè)計(jì)"誤區(qū)"
- 88-主控:有條件加載 customUI.onLoad
- 89-布局盒子(父元素)
- 90-控件屬性·事件·動(dòng)作
- 91-簡(jiǎn)單示例
- 92-WPS 表格
- 93-單元格
- 94-如何描述單元格對(duì)象
- 95-單元格讀寫(xiě)
- 96-單元格信息
- 97-關(guān)于合并單元格
- 98-合并單元格,I hate it!
- 99-單元格復(fù)制粘貼
- 100-選擇性粘貼
- 101-自定義序列
- 102-單元格的刪除/插入
- 103-單元格填充
- 104-單元格去重和高亮突出顯示
- 105-單元格條件格式
- 106-數(shù)據(jù)透視表
- 107-自動(dòng)篩選
- 108-通過(guò) JS 宏處理 DISPIMG 函數(shù)
- 109-計(jì)時(shí)器:OnTime 和 Wait
- 110-探索: Range.Offset 如何安全“漂移”
- 111-表格自動(dòng)化事件
- 112-創(chuàng)建一個(gè)事件記錄日志工作表
- 113-實(shí)現(xiàn)類 Vlookup 單條件提取內(nèi)容
- 114-代碼和宏說(shuō)明
- 115-創(chuàng)建工作表目錄
- 116-將所有批注匯總成列表
- 117-JS宏代碼
- 118-剝離 UDF 公式(數(shù)值化處理)
- 119-單元格區(qū)域轉(zhuǎn) JSON 并寫(xiě)入文件
- 120-JS宏代碼
- 121-設(shè)置工作表標(biāo)簽(Tab)顏色
- 122-插入日歷 calendar
- 123-再偷懶些
- 124-示例代碼
- 125-WPS 表格函數(shù)表
- 126-JS 宏中可用的表格函數(shù)
- 127-WPS 表格-工作表-工作簿
- 128-通用簡(jiǎn)易工作表目錄
- 129-工作表排序
- 130-巧用 Parent 進(jìn)行對(duì)象鎖定
- 131-我想要的 WPS 表格函數(shù)
- 132-單元格字符匹配統(tǒng)計(jì)
- 133-基于正則表達(dá)式的 Replace
- 134-身份證
- 135-控件 API 精講(以表格為例)
- 136-窗體控件
- 137-ActiveX 控件
- 138-WPS 文檔
- 139-"定位"專題
- 140-視圖切換
- 141-別被 paragraph 騙了
- 142-無(wú)效腳注、尾注檢測(cè)
- 143-獲取所有標(biāo)題
- 144-答網(wǎng)友問(wèn)
- 145-輪序鍵入——鍵入完成自動(dòng)切換單元格
- 146-又是一個(gè)很會(huì)偷懶的 Bigger Cousin
- 147-給你演示什么叫"畫(huà)地為牢"
- 148-示例代碼
- 149-如何批量超鏈接到同名的sheet?
- 150-如何將一個(gè)表中一個(gè)列的值合并到另一個(gè)表中的一個(gè)單元格中?
- 151-多個(gè)字符都往一個(gè)單元格里塞
- 152-wps如何將A列里包含B列的單元格高亮顯示?
- 153-excel中隨著打印份數(shù)漸序更新日期的函數(shù)?
- 154-就是玩兒
- 155-挖寶:尋找API文檔中沒(méi)有的接口
- 156-通過(guò) Application 對(duì)象的屬性獲取信息
- 157-呵呵,失敗的抽獎(jiǎng)!
- 158-哪里不會(huì)點(diǎn)哪里
- 159-芝麻開(kāi)門(mén)
- 160-乖,別鬧,Stay here
- 161-JS宏 實(shí)現(xiàn)【W(wǎng)PS 表格 VIP 專享】功能挑戰(zhàn)
- 162-工作表批量重命名
- 163-工作表標(biāo)簽批量著色
- 164-工作表拆分為工作簿
- 165-工作簿合并為工作表
- 166-WPS 表格 API 參考
- 167-Application.InpuBox
- 168-Worksheet(s)、Sheets
- 169-Range.End 精講
- 170-Cells 精講
- 171-WPS 文字 API 參考
- 172-怎么快速掌握 文字 宏API
- 173-WPS 宏編輯器 API 參考
- 174-InputBox
- 175-MsgBox
- 176-alert
- 177-WPS 擴(kuò)展 API 參考
- 178-WebShape
- 179-通用 API 參考
- 180-WPS Office文件上傳&下載 JavaScript 宏 API
- 181-JS宏API:Office(全網(wǎng)獨(dú)一份)
- 182-公共部分
- 183-文字獨(dú)有
- 184-JavaScript 語(yǔ)言基礎(chǔ)筆記
- 185-國(guó)際化API(格式化處理)
- 186-數(shù)組
- 187-日期時(shí)間
- 188-數(shù)學(xué)計(jì)算
- 189-外接輸入設(shè)備(讀卡器、掃碼槍)數(shù)據(jù)寫(xiě)進(jìn) WPS 可行性
- 190-鳴謝