WPS JS宏編程教程(從基礎到進階)--第二部分:WPS對象模型與核心操作

第二部分:WPS對象模型與核心操作

  1. WPS對象的屬性、方法、集合
    • 工作簿對象常用表達方式
    • 工作表對象常用表達方式
    • 單元格對象常用表達方式
  2. 單元格操作實戰
    • 單元格復制與重定位
    • 單元格偏移與尺寸調整
  3. 顏色設置專題
    • 索引顏色與RGB顏色
    • 按條件動態設置單元格顏色

第二部分:WPS對象模型與核心操作


1. WPS對象的屬性、方法、集合

核心概念

WPS對象就像“俄羅斯套娃”

  • 工作簿(Workbook)工作表(Worksheet)單元格(Range)
  • 每個對象都有屬性(描述特征)、方法(可執行的動作)、集合(多個同類對象的組合)。

1.1 工作簿對象常用操作

關鍵代碼示例
// 獲取當前工作簿路徑  
let 當前路徑 = ThisWorkbook.Path;  
MsgBox("當前文件保存在:" + 當前路徑);  // 新建工作簿并保存  
function 新建工作簿() {  let 新工作簿 = Workbooks.Add();  新工作簿.SaveAs(當前路徑 + "\\2024年數據.xlsx");  新工作簿.Close();  
}  // 遍歷所有打開的工作簿  
for (let wb of Workbooks) {  Console.log("已打開的工作簿:" + wb.Name);  
}  
常用屬性
屬性作用示例
.Name獲取工作簿名稱ThisWorkbook.Name
.FullName獲取完整路徑Workbooks("工資表.xlsx").FullName
.Sheets獲取所有工作表的集合ThisWorkbook.Sheets.Count(統計工作表數量)

1.2 工作表對象常用操作

關鍵代碼示例
// 重命名活動工作表  
ActiveSheet.Name = "2024年數據";  // 隱藏指定工作表  
Sheets("備份數據").Visible = false;  // 批量刪除空白工作表  
function 刪除空白表() {  for (let sheet of Sheets) {  if (sheet.UsedRange.Count == 1) {  // 如果已用區域只有一個單元格  sheet.Delete();  }  }  
}  
常用方法
方法作用示例
.Copy()復制工作表Sheets("模板").Copy()
.Move()移動工作表Sheets("數據").Move(Sheets(1))(移動到最前)
.Protect()保護工作表ActiveSheet.Protect("123")

1.3 單元格對象常用操作

關鍵代碼示例
// 讀取A1單元格的值  
let 姓名 = Range("A1").Value2;  
MsgBox("當前用戶:" + 姓名);  // 批量填充序號(A列1~100)  
Range("A1:A100").Value2 = [...Array(100).keys()].map(i => i + 1);  // 動態獲取最后一行數據  
let 最后一行 = Cells(Rows.Count, 1).End(xlUp).Row;  
Console.log("最后一行是:" + 最后一行);  
常用屬性
屬性作用示例
.Row獲取行號Range("C5").Row → 5
.Column獲取列號Range("C5").Column → 3
.Formula設置公式Range("D2").Formula = "=SUM(B2:C2)"

2. 單元格操作實戰

2.1 單元格復制與重定位

場景:將“訂單表”的標題行復制到“匯總表”
function 復制標題() {  let 訂單表 = Sheets("訂單表");  let 匯總表 = Sheets("匯總表");  // 復制A1:F1標題區域  訂單表.Range("A1:F1").Copy();  // 粘貼到匯總表A1位置(保留格式)  匯總表.Range("A1").PasteSpecial();  // 清空剪貼板  Application.CutCopyMode = false;  
}  
重定位技巧
// 從當前單元格向下偏移2行,向右偏移1列  
Range("A1").Offset(2, 1).Value2 = "新數據";  // 動態擴展區域(從A1擴展到B3)  
Range("A1").Resize(3, 2).Value2 = [  ["姓名", "年齡"],  ["張三", 28],  ["李四", 32]  
];  

2.2 單元格偏移與尺寸調整

場景:在數據末尾追加新行
function 添加新數據() {  let 最后一行 = Range("A" + Rows.Count).End(xlUp).Row;  let 新行 = 最后一行 + 1;  // 在A列最后一行下方寫入新數據  Cells(新行, 1).Value2 = "王五";  Cells(新行, 2).Value2 = 25;  // 自動調整列寬  Columns("A:B").AutoFit();  
}  

3. 顏色設置專題

3.1 索引顏色 vs RGB顏色

類型特點示例
索引顏色預定義56種顏色,速度快Range("A1").Interior.ColorIndex = 3(紅色)
RGB顏色自定義1600萬種顏色,更靈活Range("A1").Interior.Color = RGB(255, 200, 0)(橙色)
顏色代碼對照表

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳


3.2 按條件動態設置顏色

場景:將成績大于90的單元格標為綠色
function 標記高分() {  let 數據范圍 = Range("B2:B100");  for (let cell of 數據范圍) {  if (cell.Value2 > 90) {  cell.Interior.ColorIndex = 4;  // 綠色背景  cell.Font.Color = RGB(0, 0, 0); // 黑色字體  }  }  
}  
進階技巧:清除顏色
// 清除A列所有顏色  
Columns("A").Interior.ColorIndex = xlColorIndexNone;  

第二部分總結

  • 核心口訣
    • 工作簿是文件,工作表是頁簽,單元格是數據點。
    • 屬性描述狀態,方法執行動作,集合管理多個對象。
  • 實戰建議
    • OffsetResize動態定位數據區域。
    • ColorIndex快速配色,用RGB()實現個性化需求。

課后練習

  1. 寫一個宏,將當前工作表的A1單元格復制到所有工作表的A1位置。
  2. for...of循環遍歷B列,將負數標為紅色。

代碼參考答案

// 練習1:跨表復制A1內容  
function 跨表復制() {  let 源內容 = Range("A1").Value2;  for (let sheet of Sheets) {  sheet.Range("A1").Value2 = 源內容;  }  
}  // 練習2:標記負數  
function 標記負數() {  for (let cell of Range("B2:B100")) {  if (cell.Value2 < 0) {  cell.Font.ColorIndex = 3; // 紅色字體  }  }  
}  

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73536.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73536.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73536.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于DrissionPage的TB商品信息采集與可視化分析

一、項目背景 隨著電子商務的快速發展,淘寶作為中國最大的電商平臺之一,擁有海量的商品信息。這些數據對于市場分析、用戶行為研究以及競爭情報收集具有重要意義。然而,由于淘寶的反爬蟲機制和復雜的頁面結構,直接獲取商品信息并不容易。尤其是在電商行業高速發展的今天,商…

【003安卓開發方案調研】之ReactNative技術開發安卓

基于2025年最新行業動態和搜索資料&#xff0c;以下是針對國內使用React Native&#xff08;RN&#xff09;開發安卓應用的深度分析&#xff1a; 一、技術成熟度評估 1. 核心架構升級 新架構全面普及&#xff1a;2024年起&#xff0c;React Native的 新架構&#xff08;Fabri…

JS數組方法

數組方法 一、數組 JavaScript 數組的大小是可調整的&#xff0c;并且可以包含不同 數據類型。&#xff08;當不需要這些特性時&#xff0c;請使用 類型數組。&#xff09; 注&#xff1a;JavaScript 類型數組是類似數組的對象&#xff0c;它提供了一種在內存緩沖區中讀取和寫…

【一起學Rust | Tauri2.0框架】深入淺出 Tauri 2.0 應用調試:從新手到專家的蛻變

前言 Tauri 是一款備受矚目的跨平臺桌面應用開發框架&#xff0c;它允許開發者使用 Web 技術棧&#xff08;HTML、CSS、JavaScript&#xff09;構建高性能、安全的原生應用。Tauri 2.0 的發布帶來了諸多令人興奮的新特性和改進&#xff0c;進一步提升了開發體驗和應用性能。然…

Python項目-基于Python的網絡爬蟲與數據可視化系統

1. 項目簡介 在當今數據驅動的時代&#xff0c;網絡爬蟲和數據可視化已成為獲取、分析和展示信息的重要工具。本文將詳細介紹如何使用Python構建一個完整的網絡爬蟲與數據可視化系統&#xff0c;該系統能夠自動從互聯網收集數據&#xff0c;進行處理分析&#xff0c;并通過直觀…

TCP/IP三次握手的過程,為什么要3次?

一&#xff1a;過程 第一次&#xff08;SYN&#xff09;&#xff1a; 客戶端發送一個帶有SYN標志的TCP報文段給服務器&#xff0c;設置SYN1&#xff0c;并攜帶初始序列號Seqx&#xff08;隨機值&#xff09;&#xff0c;進入SYN_SENT狀態。等待服務器相應。 第二次&#xff08…

消息隊列性能比拼: Kafka vs RabbitMQ

本內容是對知名性能評測博主 Anton Putra Kafka vs RabbitMQ Performance 內容的翻譯與整理, 有適當刪減, 相關數據和結論以原作結論為準。 簡介 在本視頻中&#xff0c;我們將首先比較 Apache Kafka 和傳統的 RabbitMQ。然后&#xff0c;在第二輪測試中&#xff0c;會將 Kaf…

打磨和修改:字帖自動生成

功能增加一些。 一個人和大語言模型對話的結果。 不過是重復性勞動&#xff0c;特別需要創意的地方還是不容易做到。

電腦干貨:萬能驅動--EasyDrv8

目錄 萬能驅動EasyDrv8 功能介紹 主程序界面 驅動解壓與安裝 PE環境支持 系統部署環境 桌面環境一鍵解決方案 萬能驅動8電腦版是由IT天空出品的一款智能識別電腦硬件并自動安裝驅動的工具&#xff0c;一般又稱為it天空萬能驅動&#xff0c;萬能驅動vip版&#xff0c;簡稱…

LeetCode熱題100JS(79/100)第十五天|347|295|121|55|45

347. 前 K 個高頻元素 題目鏈接&#xff1a;347. 前 K 個高頻元素 難度&#xff1a;中等 刷題狀態&#xff1a;1刷 新知識&#xff1a; 解題過程 思考 示例 1: 輸入: nums [1,1,1,2,2,3], k 2 輸出: [1,2] 沒思路&#xff0c;看答案 題解分析 參考題解鏈接&#xff1a…

Sentinel 限流利器(功能以及源碼解析)

Sentinel簡介 Sentinel是阿里開源的一款面向分布式、多語言異構化服務架構的流量治理組件。 主要以流量為切入點&#xff0c;從流量路由、流量控制、流量整形、熔斷降級、系統自適應過載保護、熱點流量防護等多個維度來幫助開發者保障微服務的穩定性。 核心概念 資源 資源是…

子數組 之 logTrick算法,求解或,與,LCM,GCD

文章目錄 gcd的問題最大公約數 求解子數組的&,|,lcm,gcd的最值or計數問題&#xff0c;如果采用暴力的做法&#xff0c;那么時間復雜度會來到o(n^2),其實在求解的過程中&#xff0c;會出現很多的結果不變的情況&#xff0c;所以我們就可以提前結束 存在一定的單調性&#x…

How to use pgbench to test performance for PostgreSQL?

pgbench 是一個用于測試 PostgreSQL 數據庫性能的基準測試工具。通過模擬多個客戶端并發執行 SQL 查詢&#xff0c;它可以幫助你評估數據庫的性能。以下是使用 pgbench 的基本步驟&#xff1a; 安裝 pgbench pgbench 是 PostgreSQL 的一部分&#xff0c;因此在安裝 PostgreSQ…

應用服務接口第二次請求一直pending問題

目錄 一、問題背景二、問題排查過程三、解決方案四、總結 一、問題背景 升級內容發布到灰度環境&#xff0c;驗證相關服務&#xff0c;查看接口調用日志&#xff0c;發現第一次請求正常&#xff0c;第二次相同接口請求就一直pending&#xff0c;其他服務也是如此 二、問題排查…

嵌入式八股RTOS與Linux---網絡系統篇

前言 關于計網的什么TCP三次握手 幾層模型啊TCP報文啥的不在這里講,會單獨分成一個計算機網絡模塊 ??這里主要介紹介紹lwip和socket FreeRTOS下的網絡接口–移植LWIP 實際上FreeRTOS并不自帶網絡接口,我們一般會通過移植lwip協議棧讓FreeRTOS可以通過網絡接口收發數據,具體可…

推薦一款好看的 vue3 后臺模板

SoybeanAdmin 項目簡介 SoybeanAdmin 是一個基于最新前端技術棧的清新、優雅、高顏值且功能強大的后臺管理模板。它采用 Vue3, Vite5, TypeScript, Pinia, NaiveUI 和 UnoCSS 構建&#xff0c;為開發者提供了一個現代化、高效且易于擴展的后臺管理系統解決方案。 主要特點&am…

【django】1-1 django構建web程序的基礎知識

文章目錄 1 構建web應用的基礎知識1.1 互聯網相關的概念1.2 互聯網協議DNS(域名系統)IP協議(互聯網絡協議)TCP(傳輸控制協議)HTTP(超文本傳輸協議)SSL(安全套接字層)TLS(傳輸層安全) 1.3 URL 2 web程序2.1 web程序的本質2.2 web框架的設計模式1.2.1 經典的MVC設計模式1.2.2 Dja…

【智能體】從一個聊天工作流了解LangGraph

1. 前言 這篇文章將從如何搭建一個帶網絡搜索功能的聊天機器人工作流&#xff0c;帶你初步了解 LangGraph。 2. 前提條件 已搭建 Python 開發環境&#xff0c;使用 3.11 以上版本。 已熟悉 Python 基礎語法。可參考&#xff1a;【LLM】Python 基礎語法_llm python入門-CSDN博…

JAVA開發:實例成員與靜態成員

判斷Java中的實例成員與靜態成員 在Java中&#xff0c;可以通過以下幾種方式判斷一個成員是實例成員還是靜態成員&#xff1a; 1. 通過聲明方式判斷 靜態成員使用static關鍵字修飾&#xff0c;實例成員不使用&#xff1a; public class MyClass {// 實例成員int instanceVa…

Softmax 回歸 + 損失函數 + 圖片分類數據集

Softmax 回歸 softmax 回歸是機器學習另外一個非常經典且重要的模型&#xff0c;是一個分類問題。 下面先解釋一下分類和回歸的區別&#xff1a; 簡單來說&#xff0c;分類問題從回歸的單輸出變成了多輸出&#xff0c;輸出的個數等于類別的個數。 實際上&#xff0c;對于分…