第二部分:WPS對象模型與核心操作
- WPS對象的屬性、方法、集合
- 工作簿對象常用表達方式
- 工作表對象常用表達方式
- 單元格對象常用表達方式
- 單元格操作實戰
- 顏色設置專題
第二部分: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 單元格對象常用操作
關鍵代碼示例
let 姓名 = Range("A1").Value2;
MsgBox("當前用戶:" + 姓名);
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("匯總表"); 訂單表.Range("A1:F1").Copy(); 匯總表.Range("A1").PasteSpecial(); Application.CutCopyMode = false;
}
重定位技巧
Range("A1").Offset(2, 1).Value2 = "新數據";
Range("A1").Resize(3, 2).Value2 = [ ["姓名", "年齡"], ["張三", 28], ["李四", 32]
];
2.2 單元格偏移與尺寸調整
場景:在數據末尾追加新行
function 添加新數據() { let 最后一行 = Range("A" + Rows.Count).End(xlUp).Row; let 新行 = 最后一行 + 1; 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); } }
}
進階技巧:清除顏色
Columns("A").Interior.ColorIndex = xlColorIndexNone;
第二部分總結
- 核心口訣:
- 工作簿是文件,工作表是頁簽,單元格是數據點。
- 屬性描述狀態,方法執行動作,集合管理多個對象。
- 實戰建議:
- 用
Offset
和Resize
動態定位數據區域。 - 用
ColorIndex
快速配色,用RGB()
實現個性化需求。
課后練習:
- 寫一個宏,將當前工作表的A1單元格復制到所有工作表的A1位置。
- 用
for...of
循環遍歷B列,將負數標為紅色。
代碼參考答案
function 跨表復制() { let 源內容 = Range("A1").Value2; for (let sheet of Sheets) { sheet.Range("A1").Value2 = 源內容; }
}
function 標記負數() { for (let cell of Range("B2:B100")) { if (cell.Value2 < 0) { cell.Font.ColorIndex = 3; } }
}