wps加载项教程

[TOC]

wps加载项教程

视频教程【wps加载项教程】 https://www.bilibili.com/video/BV1EXxXeBEW3/?share_source=copy_web\&vd_source=60643e0be9c389e9626916661281d724

什么是wps加载项

  1. 了解概念
    • WPS 加载项是一套基于 Web 技术用来扩展 WPS 应用程序的解决方案。每个 WPS 加载项都对应打开了一个网页,并通过调用网页中 JavaScript 方法来完成其功能逻辑。 WPS 加载项打开的网页可以直接与 WPS 应用程序进行交互,同时一个 WPS 加载项中的多个网页形成了一个整体, 相互之间可以进行数据共享。 开发者不必关注浏览器兼容的问题,因为 WPS 加载项的底层是以 Chromium 开源浏览器项目为基础进行的优化扩展。 WPS 加载项具备快速开发、轻量化、跨平台的特性,目前已针对Windows/Linux操作系统进行适配。 WPS 加载项功能特点如下:
  2. 学习加载项架构,运行原理

WPS加载项和JS宏(Macros)的区别

  • wps加载项
    • WPS加载项提供了通过外部手段来调用wps内部的api,所以可以实现比如自动化操作、添加自定义功能、集成网页系统等。
    • WPS 加载项是外部软件组件或插件,能够与 WPS Office 集成,提供额外的功能和服务。它们通常以独立的程序或库形式存在。
    • 依托Chromium 开源浏览器项目为基础进行的优化扩展,内部集成与wps客户端进行通讯的机制,可以调用wps开放的api(可以在后面详细的学习到)
    • 加载项通常用于为 WPS Office 提供额外的功能,例如自定义的工具栏、额外的功能按钮、模板、数据连接等。
    • 可以下载更新版本
    • 可以在wps中自定义功能区(自定义各种功能),任务窗格(嵌入网页控制wps),对话框(嵌入网页控制wps),嵌入外部网页到wps中(核心学习内容)
  • wps宏(macros)
    • WPS 宏是用来自动执行特定任务的一段代码,它们通常以 VBA(Visual Basic for Applications)脚本的形式存在。宏可以在 WPS Office 文档内创建和运行
    • 宏用于自动化重复性任务,例如数据处理、格式化、报表生成等。它们可以帮助用户提高效率,减少手动操作。
    • 需要开发者手动跟新
  • 总结
    • wps宏(macros)能实现的wps加载项基本上都能实现
    • wps加载项可以和按钮,菜单,页面进行交互,js宏(只是运行单纯的代码)

加载项功能展示

  1. 摸鱼项目
    1. 刷抖音,隐藏
  2. 实战项目
    1. 自动计算工资
  3. OA项目预览

通过多种模式开发wps加载项

  1. wps加载项开发(js语言)
  2. wps宏编辑器开发
  3. Java应用集成wps
  4. C++应用集成wps
  5. 浏览器应用集成嵌入wps
  6. android应用集成wps

初始化首个加载项项目

  1. 环境准备
    1. 代码编辑器vscode
    2. node环境
      1. 不低于v16
    3. npm环境
    4. wps更新最新版本(出现不知道的bug,比如调试器窗口打不开)
  2. 加载项的类别
    1. word文档
    2. excel表格
    3. ppt
  3. 加载项支持的框架
    1. 原生js
    2. vue(vue2/vue3主流)
    3. react(...)
  4. 初始化原生项目js
    1. 源码讲解
    2. 加载流程讲解
      1. wps加载项启动时候,在window对象上注入Application!,
      2. 打开index.html,引入main.js
      3. 解析robbon.xml生成自定义功能区,解析代码加载工具函数
  5. 初始化vue项目(2024/8月后,默认都是vue3项目了)
    1. 源码讲解
    2. 基于该项目进行开发

开发一个简单的加载项demo

对项目整体做一个介绍,通过修改ribbon.xml体验,加载项加载流程

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="ribbon.OnAddinLoad">
    <ribbon startFromScratch="false">
        <tabs>
            <tab id="wpsAddinTab" label="red润加载项摸鱼">
				<group id="btnDemoGroup" label="group1">
                    <button id="red润加载项" label="red润加载项" getImage="ribbon.GetImage"  visible="true" size="large"/>
                    <button id="磕头了" label="磕头了" getImage="ribbon.GetImage" size="large"/>
                    <button id="投币" label="投币" getImage="ribbon.GetImage" size="large"/>
                    <button id="求求了" label="求求了" getImage="ribbon.GetImage" size="large"/>
                    <separator id="separator" />
                    <button id="btnShowMsg" label="弹出消息框" onAction="ribbon.OnAction" getEnabled="ribbon.OnGetEnabled"  getImage="ribbon.GetImage" visible="true" size="large"/>
                    <button id="btnIsEnbable" getLabel="ribbon.OnGetLabel" onAction="ribbon.OnAction" enabled="true"  getImage="ribbon.GetImage" visible="true" size="large"/>
                    <button id="btnShowDialog" label="弹对话框网页" onAction="ribbon.OnAction" getEnabled="ribbon.OnGetEnabled"  getImage="ribbon.GetImage" getVisible="ribbon.OnGetVisible" size="large"/>
                    <separator id="separator" />
                    <button id="btnShowTaskPane" label="弹任务窗格网页" onAction="ribbon.OnAction" getEnabled="ribbon.OnGetEnabled"  getImage="ribbon.GetImage" getVisible="ribbon.OnGetVisible" size="large"/>
                    <button id="btnApiEvent" getLabel="ribbon.OnGetLabel" onAction="ribbon.OnAction" getEnabled="ribbon.OnGetEnabled"  getImage="ribbon.GetImage" getVisible="ribbon.OnGetVisible" size="large"/>
                    <button id="btnWebNotify" label="给业务系统发通知" onAction="ribbon.OnAction" enabled="true"  getImage="ribbon.GetImage" getVisible="ribbon.OnGetVisible" size="large"/>
                    <buttonGroup id="buttonGroup">
                        <button id="button1" label="button1" imageMso="Bold" />
                        <button id="button2" label="button2" imageMso="Italic" />
                        <button id="button3" label="button3" imageMso="Underline" />
                        <button id="button4" label="button4" imageMso="FontSize" />
                        <button idMso="Underline" />
                    </buttonGroup>
                </group>
            </tab>
            
        </tabs>
    </ribbon>
</customUI>

实现摸鱼项目

见视频

发布wps加载项服务器

见视频

本地搭建环境部署wps加载项

本地搭建静态文件夹

打包加载项,部署到本地

云服务器部署加载项,同本地

系统学习加载项基础

学习自定义功能区

ECMA 是 JavaScript 的标准化组织,ECMA-262 是 JavaScript 语言的正式规范。ECMA(欧洲计算机制造商协会)制定了这个规范,以确保 JavaScript 的一致性和可移植性。每个新版本的 ECMA-262 都会引入新的特性和改进,例如 ES5、ES6(也称为 ES2015)等。

ECMA-376 是一个开放标准,定义了 Office Open XML(OOXML)文件格式,主要用于 Microsoft Office 应用程序,如 Word、Excel 和 PowerPoint。该标准描述了如何存储文档、电子表格和演示文稿的内容、样式、结构和其他元数据。ECMA-376 是一个重要的标准,因为它促进了文档的互操作性和长期存储。

ECMA-376,即 Office Open XML(OOXML),得到了多个平台和应用程序的支持。主要支持的包括:

  1. Microsoft Office:所有现代版本的 Word、Excel 和 PowerPoint 都支持 OOXML 格式。
  2. WPS Office: 支持 ECMA-376 标准(Office Open XML)。用户可以打开、编辑和保存 OOXML 格式的文档,如 .docx、.xlsx 和 .pptx 文件。
  3. LibreOffice:该开源办公套件也能够打开和保存 OOXML 文件。
  4. Google Docs:可以导入和导出 OOXML 文件。
  5. Apache OpenOffice:支持 OOXML 格式,但可能在某些复杂格式上有局限。
  6. 其他工具和库:如 Aspose、Docx4j 等,也提供对 OOXML 格式的支持。

学习CustomUI标准

阅读customui官方文档

学习idMSo控件复现原生控件

以英文为主,官方中文描述存在错误

RibbonControl对象

RibbonControl 对象是自定义功能区中的控件对象。OnAction事件的参数

  • id控件唯一ID
  • tag指定的任意字符串

RibbonUI对象

RibbonUI 对象是 onLoad 事件的参数。

Office全局对象

Application

Application 是浏览器Window 对象的子对象。Application对象在浏览器创建时自动注入到浏览器执行上下文环境

说明

Wps 对象是访问Application 对象模型的根对象,它在浏览器创建后动态注入到浏览器执行上下文中,下列代码展示如何从****Wps**对象拿到 Application对象,然后从Application**对象拿到当前文档的名字。

let app = Application
let doc = app.ActiveDocument
if(doc){
	let docName = doc.Name
}

学习在任务窗格中嵌入网页

学习在任务弹窗中嵌入网页

学习使用WebShape渲染html页面,加载到excel中

事件

系统环境

加载项数据PluginStorage

文件系统

window.ribbon = ribbon
      // console.log(window.Application)// Application,window.Appliction
      const Application = window.Application
      console.log(1)
      // let doc = Application.ActiveWorkbook
      // if (doc) {
      //   console.log(doc.Name)
      // }
      // let fs = Application.FileSystem
      // console.log(fs)
      // let width = 300 * window.devicePixelRatio
      // let hight = 200 * window.devicePixelRatio
      // let bModal = true
      // Application.ShowDialog('https://www.bilibili.com', 'wps首页', width, hight, bModal)
      // let tp = Application.CreateTaskPane('http://192.168.0.101:3889')
      // if (tp) {
      //   tp.Visible = true
      //   tp.DockPosition = Application.Enum.msoCTPDockPositionTop
      // setTimeout(() => {
      // tp.Navigate('https://www.bilibili.com')
      // console.log(1)
      // }, 3000)
      // console.log(tp.ID)
      // }
      // let tp = Application.CreateTaskPane('http://192.168.0.101:3889')

      // let width = 400 * window.devicePixelRatio
      // let height = 300 * window.devicePixelRatio
      // Application.ShowDialog('https://www.wps.cn', 'wps网站', width, height, true)
      // Application.alert('12313')
      // console.log(Application.confirm('12313'))// ok 1 不ok 0
      // addEventListener('click', () => {
      //   console.log(111)
      // })
      // Application.ApiEvent.AddApiEventListener('WorkbookBeforeClose', function (workBook) {
      //   if (!workBook.Saved) {
      //     alert('请先保存文档!')
      //     Application.ApiEvent.Cancel = true
      //   }
      // })
      // Application.ApiEvent.RemoveApiEventListener('WorkbookBeforeClose')
      // Application.ApiEvent.AddApiEventListener('NewWorkbook', function (workBook) {
      //   alert('12313!')
      // })
      // console.log('==============================================')
      // let tempPath = Application.Env.GetTempPath()
      // console.log(tempPath) //如果是jde环境,则是Debug.Print(tempPath)
      // let GetDesktopDpi = Application.Env.GetDesktopDpi()
      // console.log(GetDesktopDpi) //取系统DPI。
      // let GetHomePath = Application.Env.GetHomePath()
      // console.log(GetHomePath) //取系统HOME目录的路径,代表当前用户主目录。
      // let GetProgramDataPath = Application.Env.GetProgramDataPath()
      // console.log(GetProgramDataPath) //取系统ProgramData目录的路径,仅windows平台适用。
      // let GetProgramFilesPath = Application.Env.GetProgramFilesPath()
      // console.log(GetProgramFilesPath) //取系统ProgramFiles目录的路径,仅Windows平台适用。
      // let GetRootPath = Application.Env.GetRootPath()
      // console.log(GetRootPath) //取系统根目录的路径。
      // let GetTempPath = Application.Env.GetTempPath()
      // console.log(GetTempPath) //	取系统临时目录的路径。
      // console.log('==============================================')
      // let tempPath = Application.Env.GetTempPath() //c:xxx/a.txt
      // console.log(tempPath)
      // if (Application.FileSystem.Exists(tempPath + '/a.txt')) {
      //   alert('a.txt文件存在')
      // } else {
      //   alert('文件不存在')
      // }
      // let path = './testtest.txt'
      // let dist = "./disttest.txt"
      // console.log(Application.FileSystem.AppendFile(path, '123'))
      // console.log(Application.FileSystem.copyFileSync(path, dist))

      let ps = Application.PluginStorage
      console.log(ps)
      ps.setItem('count', 5)
      let itemCounts = ps.length
      console.log(itemCounts)
      for (let i = 0; i < itemCounts; ++i) {
        let itemKey = ps.key(i)
        //如果要取到对应的value,使用
        ps.getItem(itemKey)
        console.log(itemKey)
      }

拓展知识

扩展API

NativeX拓展(了解)
  • 使用其他语言python.c/c++扩展jsapi功能
**系统集成业务系统(wps应用和浏览器互相通讯)**基础示例

wps_sdk.js自己网页,调用wps加载项进行通讯

在用户的电脑上安装过WPS软件后,WPS会在用户的电脑上安装WEB服务(就相当于一个小的WEB服务器),这个服务器的地址是httphttp://127.0.0.1:58890和httpshttps://127.0.0.1:58891,wpsjsrpcsdk.js中就是用js发送http请求到上述两个地址来管理加载项或启动WPS客户端。具体用法参加WPS开放平台。

 1. 通过浏览器中的页面直接启动WPS
 2. 浏览器与WPS双向通信,WPS发消息,浏览器前端页面可接受并解析

​ 通过使用wpsjsrpcsdk.js提供的接口,开发者可以很容易的构筑一个web页面;用户通过点击web前端页面上的按钮,让WPS加载项执行一系列操作

OA助手,阅读源码

去官网下载源码

在本地跑起来

分析源码

  • 网页源码
  • 加载项源码

学习加载项api(学习几十上百个常用api,主要涉及表格部分api,其它可自学)

通用API

/**
        msoFileDialogFilePicker=3,// 文件选取器
        msoFileDialogOpen=1,// 打开
        msoFileDialogSaveAs=2,// 另存为
        msoFileDialogFolderPicker=4,// 文件夹选取器
       */
  // 打开文件
  // let fileDialog = Application.FileDialog(Application.Enum.msoFileDialogOpen)
  // fileDialog.Title = '测试标题'
  // fileDialog.ButtonName = '测试按钮'
  // console.log(fileDialog, 'fileDialog')
  // console.log(fileDialog.DialogType, 'DialogType')
  // // console.log(fileDialog.Show(), 'show')
  // if (fileDialog.Show() == -1) {
  //   //-1确认按钮
  //   fileDialog.Execute() //会触发监听函数
  // }
  // console.log(fileDialog.SelectedItems, 'selectItem')
  // let filename = fileDialog.SelectedItems
  // if (filename.Count > 0) {
  //   console.log(filename.Item(1)) // C:\Users\zou_hong_run\Downloads\样章.xlsx
  // }
  // 导入文件

  // let fileDialog = Application.FileDialog(Application.Enum.msoFileDialogFilePicker)
  // if (fileDialog.Show()) {
  //   let filename = fileDialog.SelectedItems
  //   if (filename.Count > 0) {
  //     console.log(filename.Item(1)) // C:\Users\zou_hong_run\Downloads\样章.xlsx
  //   }
  // }
  // 保存文件
  let fileDialog = Application.FileDialog(Application.Enum.msoFileDialogSaveAs)
  fileDialog.Title = '测试'
  fileDialog.ButtonName = '测试按钮'
  fileDialog.InitialFileName = '初始化名称'
  console.log(fileDialog, 'fileDialog')
  console.log(fileDialog.DialogType, 'DialogType')
  // console.log(fileDialog.Show(), 'show')
  if (fileDialog.Show() == -1) {
    //-1确认按钮
    fileDialog.Execute() //会触发保存文档的监听函数
  }
  console.log(fileDialog.SelectedItems, 'selectItem')

表格API

学习开发一个完整的加载项项目

使用学习到的api开发完整的加载项目

加载项 API 参考

Application

打开指定工作簿

 let docPath = "d:/abc.xlsx";
    Application.Workbooks.Open(docPath);

检查ET(excelTable)

let myObject = Application.ActiveWorkbook
  if(myObject.Application.Value == "ET") {
      alert("This is an ET Application object.")
  }
  else {
      alert("This is not an ET Application object.")
  }

Application 对象

代表整个 ET 应用程序,它是整个应用程序api对象树的根对象。

打开指定的工作簿。

let docPath = 'C:/Users/Administrator/Desktop/wpsjs/工作簿2.xlsx'
  Application.Workbooks.Open(docPath)

判断是否是excel表格

 if (myObject.Application.Value == 'Microsoft Excel') {
    alert('This is an Microsoft Excel Application object.')
  } else {
    alert('This is not an Microsoft Excel Application object.')
  }

关闭所有打开的excel表格

Application.Quit()

Evaluate(很强大)

  // Application.Evaluate('A1').Value2 = 25
  // let trigVariable = Application.Evaluate('SIN(45)')
  // let firstCellInSheet = Application.Workbooks.Item(1).Sheets.Item(1).Evaluate('A1')
  // alert(trigVariable)
  // alert(firstCellInSheet)
  // Application.Worksheets.Item('Sheet1').Activate()
  // let boldCell = 'A1'
  // Application.Evaluate(boldCell).Font.Bold = true

Application.Evaluate('A1').Value2 = 25
  let trigVariable = Application.Evaluate('Average(A1:D1)')
  let firstCellInSheet = Application.Workbooks.Item('工作簿1.xlsx').Sheets.Item(1).Evaluate('A1')
  console.log(trigVariable)
  console.log(firstCellInSheet.Value2)

Application.Evaluate('A1').Value2 = 25
  let trigVariable = Application.Evaluate('Average(A1:D1)')
  Application.Evaluate('A4').Value2 = trigVariable
  // let firstCellInSheet = Application.Workbooks.Item('工作簿1.xlsx').Sheets.Item(1).Evaluate('A1')
  // console.log(trigVariable)
  // console.log(firstCellInSheet.Value2)

跳转到指定位置

let rg = Application.ActiveWorkbook.Worksheets.Item('Sheet1').Range('A154')
  Application.Goto(rg, true)

获取输入内容

显示一个接收用户输入的对话框。返回此对话框中输入的信息。

语法

*express.*InputBox(*Prompt*, *Title*, *Default*, *Left*, *Top*, *HelpFile*, *HelpContextID*, *Type*)

express 一个代表 Application 对象的变量。

参数

名称 必选/可选 数据类型 说明
Prompt 必选 String 要在对话框中显示的消息。可为字符串、数字、日期、或布尔值(在显示之前,ET 自动将其值强制转换为 String)。
Title 可选 Variant 输入框的标题。如果省略该参数,默认标题将为"Input"。
Default 可选 Variant 指定一个初始值,该值在对话框最初显示时出现在文本框中。如果省略该参数,文本框将为空。该值可以是 Range 对象。
Left 可选 Variant 指定对话框相对于屏幕左上角的 X 坐标(以磅为单位)。
Top 可选 Variant 指定对话框相对于屏幕左上角的 Y 坐标(以磅为单位)。
HelpFile 可选 Variant 此输入框使用的帮助文件名。如果存在 HelpFile 和 HelpContextID 参数,对话框中将出现一个帮助按钮。
HelpContextID 可选 Variant HelpFile 中帮助主题的上下文 ID 号。
Type 可选 Variant 指定返回的数据类型。如果省略该参数,对话框将返回文本。

说明

下表列出了可以在 Type 参数中传递的值。可以为下列值之一或其中几个值的和。例如,对于一个可接受文本和数字的输入框,将 Type 设置为 1 + 2。

含义
0 公式
1 数字
2 文本(字符串)
4 逻辑值(TrueFalse
8 单元格引用,作为一个 Range 对象
16 错误值,如 #N/A
64 数值数组

使用 InputBox 可以显示一个简单的对话框,以便可以输入要在宏中使用的信息。此对话框有一个"确定"按钮和一个"取消"按钮。如果选择了"确定"按钮,则 InputBox 将返回对话框中输入的值。如果单击"取消"按钮,则 InputBox 返回 False

如果 Type 为 0,InputBox 将以文本格式返回公式。例如,"=2*PI()/360"。如果公式中有引用,将以 A1-样式引用返回(使用 ConvertFormula转换引用样式)。

如果 Type 为 8,InputBox 将返回一个 Range 对象。您必须用 Set 语句将结果指定给一个 Range 对象,如下例所示。

let myRange = Application.InputBox("Sample", undefined, undefined, undefined, undefined, undefined, undefined,8)
}
//Range对象

 // let rg = Application.ActiveWorkbook.Worksheets.Item('Sheet1').Range('A154')
  // Application.Goto(rg, true)
  // let myNum = Application.InputBox('Enter a number')
  // console.log(myNum)
  Application.Worksheets.Item('Sheet1').Activate()
  let myCell = Application.InputBox(
    'Select a cell',
    undefined,
    undefined,
    undefined,
    undefined,
    undefined,
    undefined,
    8
  )
  console.log(myCell)

激活sheet

Application.Worksheets.Item("Sheet1").Activate()

获取/更改活动单元格的值

Application.Worksheets.Item('Sheet1').Activate()
console.log(Application.ActiveCell.Value2)
  
Application.Worksheets.Item("Sheet1").Activate()
let font = Application.ActiveCell.Font
font.Bold = true
font.Italic = true

获取活动窗口

  console.log('The name of the active window is ' + Application.ActiveWindow.Caption)

获取活动窗口中的工作簿

Application.ActiveWorkbook.Name

获取活动工作簿中的活动工作表

console.log('The name of the active sheet is ' + Application.ActiveSheet.Name)

获取版本号

console.log(Application.Build, 'Application.Build')

修改/设置表格标题栏

 console.log(Application.Caption)
Application.Caption = "KingSoft"
 console.log(Application.Caption)

缩放窗口大小

/*本示例表示将活动窗口放大50%。Zoom 属性用于放大或缩小窗口大小*/
function test() {
    Application.ActiveWindow.Zoom += 50
}

获取第一个单元格的值

console.log(Application.Cells.Item(1).Value2, 'Application.Cells')

获取/设置指定行列的单元的值

Application.ActiveSheet.Cells.Item(2, 2).Value2 = 1000;//RowIndex,ColumnIndex

获取所有单元格的值(卡死)

// 获取指定工作表
  var sheet = Application.Worksheets.Item('Sheet1')

  // 获取行数和列数
  var rowCount = sheet.Rows.Count//1048576 
  var columnCount = sheet.Columns.Count//16384

  // 创建一个二维数组来存储所有单元格的值
  var allValues = []

  // 循环遍历每一行和每一列
  for (var i = 1; i <= rowCount; i++) {
    var rowValues = []
    for (var j = 1; j <= columnCount; j++) {
      // 获取单元格的值
      rowValues.push(sheet.Cells.Item(i, j).Value2)
    }
    allValues.push(rowValues) // 将每一行的值添加到总数组中
  }

  // 打印出所有单元格的值
  console.log(allValues)

选中所有已使用区域

/*本示例选定 Sheet1 中的已用区域。*/
function test() {
    Application.Worksheets.Item("Sheet1").Activate()
    Application.ActiveSheet.UsedRange.Select()
}

显示共使用多少单元格

/*本示例显示活动工作表总共使用多少单元格。*/
function test() {
    alert("A total of " + ActiveSheet.UsedRange.Count + "  cells are used ")
}

获取所有列

console.log(Application.Columns.Cells.Item(1).Value2)

获取所有行

Application.Rows
/* 此示例删除 Sheet1 的第三行。 */
Application.Worksheets.Item("Sheet1").Rows.Item(3).Delete()

选中范围

/*本示例演示选择单元格区域A4:B5。*/
function test() {
    Application.Cells.Range("A4:B5").Select()
}

弹出各种对话框

Application.Dialogs.Item(xlDialogOpen).Show()

设置/返回窗口的高度

Application.Height = 1000

获取窗口状态

console.log(Application.WindowState, 'Application.WindowState')// 枚举值

返回/设置屏幕左边的距离

Application.Left

获取工作簿中所有名称

Application.Names

获取应用程序完整路径(不包括末尾的分隔符和应用程序名)

Application.Path

获取选中的对象

//清空选中对象
Application.Worksheets.Item("Sheet1").Activate()
    Application.Selection.Clear()
// 显示选中对象
Application.Selection

设置窗口到屏幕顶部的距离

Application.Top

获取应用程序名称

Application.Value//此属性始终返回 "Microsoft Excel"。

获取版本号

/* 此示例显示包含 ET 版本号和操作系统名称的消息框。 */
function test() {
    alert(`Welcome to ET version ${Application.Version} running on ${Application.OperatingSystem}!`)
}

设置窗口宽度

/*  此示例将活动窗口的尺寸扩大为可用的最大尺寸(假定该窗口尚未最大化)。 */
function test() {
    let window = Application.ActiveWindow
    window.WindowState = Application.Enum.xlNarrow
    Application.Top = 100
  Application.Left = 100
  Application.Height = Application.UsableHeight
  Application.Width = Application.UsableWidth
}

窗口最大化

/* 本示例将 ET 应用程序窗口最大化。 */
function test() {
    Application.WindowState = Application.Enum.xlMaximized
}

返回或设置窗口的状态

/*  此示例将活动窗口的尺寸扩大为可用的最大尺寸(假定该窗口尚未最大化)。 */
function test() {
    let window = Application.ActiveWindow
    window.WindowState = Application.Enum.xlNarrow
    window.Top = 1
    window.Left = 1
    window.Height = Application.UsableHeight
    window.Width = Application.UsableWidth
}

获取窗口集合,关闭或打开窗口

/* 此示例关闭 ET 中第一个打开或隐藏的窗口。 */
function test() {
    Application.Windows.Item(1).Close()
}

/* 此示例将活动工作簿的窗口一命名为"Consolidated Balance Sheet"。此名称将被用作对 Windows 集合的索引。 */
function test() {
    Application.ActiveWorkbook.Windows.Item(1).Caption = "Consolidated Balance Sheet"
    Application.ActiveWorkbook.Windows.Item("Consolidated Balance Sheet").ActiveSheet.Calculate()
}

获取所有打开的工作簿

Application.Workbooks

工作表函数(调用工作簿的计算函数)

/* 本示例对单元格区域 A1:A10 应用 Min 工作表函数,并显示结果。 */
function test() {
    let myRange = Application.Worksheets.Item("Sheet1").Range("A1:C10")
    let answer = Application.WorksheetFunction.Min(myRange)
    alert(answer)
}

向工作簿添加工作表,并设置该工作表的名称

/* 此示例向活动工作簿添加新工作表,并设置该工作表的名称。 */
function test() {
    let newSheet = Application.Worksheets.Add()
    newSheet.Name = "current Budget"
}

获取工作表集合

/* 此示例显示活动工作簿中 sheet1 上单元格 A1 中的值。。 */
function test() {
    alert(Application.Worksheets.Item("Sheet1").Range('A1').Value2)
}

/* 此示例显示活动工作簿中每个工作表的名称。 */
function test() {
    for (let i = 1; i <= Application.Worksheets.Count; i++) {
        alert(Application.Worksheets.Item(i).Name)
    }
}

Areas 对象

/* 此示例检查当前选定区域是否为多重选定区域,如果是,则清除其中的第一个子区域的内容*/
function test() {
  if(Application.Selection.Areas.Count != 1){
      Application.Selection.Areas.Item(1).Clear()
  }
}
console.log(Application.Selection.Areas.Count, 'Application.Selection.Areas.Count')
  console.log(
    Application.Selection.Areas.Item(1).Item(1).Value2,
    'Application.Selection.Areas.Item(1).Clear()'
  )
  
/*此示例设置 Sheet1 上选定区域内部颜色。此示例还将检测选定区域中是否包含多重选定区域,如果包含,则对多重选定区域中每一子区域进行循环并设置内部颜色。*/
function test() {
    Application.Worksheets.Item("Sheet1").Activate()
    let areasCount = Application.Selection.Areas.Count
    if (areasCount <= 1) {
        Application.Selection.Interior.Color = RGB(0, 255, 0)
    } else {
        for (let i = 1; i <= areasCount; i++) {
            Application.Selection.Areas.Item(i).Interior.Color = RGB(0, 0, 255)
        }
    }
}

AutoCorrect 对象

包含 ET 的 AutoCorrect 属性(自动将日期名改为大写、自动更正连续两个大写字母、自动更正词条列表等等)。

/*使用 AutoCorrect 属性可返回 AutoCorrect 对象。下例使 ET 更正以连续两个大写字母开头的单词。*/
function test()
{
    let correct = Application.AutoCorrect
    correct.TwoInitialCapitals = true
    correct.ReplaceText = true
}

AutoRecover 对象

代表工作簿的自动恢复功能。

/*以下示例将"自动恢复"文件的路径设置为驱动器 C。*/
function test(){
    Application.AutoRecover.Path = "C:\\"
}

使用 AutoRecover 对象的 Time 属性可设置备份所有文件的时间间隔。

Time 属性的单位是分钟。

function SetTime(){
    Application.AutoRecover.Time = 5
}

Border

代表对象的边框。

说明

大多数具有边框的对象(除 [Range](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Range/Range .htm#jsObject_Range) [ ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Range/Range .htm#jsObject_Range)和 [Style](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Style/Style .htm#jsObject_Style) [ ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Style/Style .htm#jsObject_Style)对象外)都将边框作为单一实体处理,而不管边框有几个边。整个边框必须作为一个整体单位返回。例如,使用 [TrendLine](https://qn.cache.wpscdn.cn/encs/doc/office_v19/topics/WPS 基础接口/表格 API 参考/枚举/XlTrendlineType 枚举.html) [ ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/topics/WPS 基础接口/表格 API 参考/枚举/XlTrendlineType 枚举.html)对象的 Border 属性可返回此类对象的 Border 对象。

下例更改活动图表中趋势线的类型和线型。

function test() {  
   let trendlines = Application.ActiveChart.SeriesCollection(1).Trendlines(1)  
   trendlines.Type = xlLinear  trendlines.Border.LineStyle = xlDash
} 

[Range ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Range/Range .htm#jsObject_Range)和 [Style ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Style/Style .htm#jsObject_Style)对象具有四个分立的边框:左边框、右边框、顶部边框和底部边框,这四个边框既可单独返回,也可作为一个组同时返回。使用 Borders 属性可返回 Borders 集合,该集合包含所有四个边框,并将这些边框视为一个单位。下例向第一张工作表上的单元格 A1 添加双边框。

Application.Worksheets.Item(1).Range("A1").Borders.LineStyle = xlDouble

使用 Borders (index )(其中 index 指定边框)可返回单个 Border 对象。下例设置单元格区域 A1:G1 的底部边框的颜色。

Application.Worksheets.Item("Sheet1").Range("A1:G1").Borders(xlEdgeBottom).Color = (255, 0, 0)

Index 可为以下 [XlBordersIndex ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/topics/WPS 基础接口/表格 API 参考/枚举/XlBordersIndex 枚举.html)常量之一:xlDiagonalDownxlDiagonalUpxlEdgeBottomxlEdgeLeftxlEdgeRightxlEdgeTopxlInsideHorizontalxlInsideVertical

Characters 对象

代表包含文本的对象中的字符。

说明

使用 Characters 对象可修改包含在全文本字符串中的任意字符序列。

使用 Characters (start , length )(其中 start 为起始字符号,而 length 为要返回的字符个数)返回 Characters 对象。

/*下例向单元格 B1 中添加文本,并将第二个单词设置为加粗。*/ function test() {    Application.Worksheets.Item("Sheet1").Range("B1").Value = "New Title"    Application.Worksheets.Item("Sheet1").Range("B1").Characters(5, 5).Font.Bold = true }

仅当需要更改对象中文本的一部分而不影响其余部分时,才有必要使用 Characters 方法(如果对象不支持格式文本,则不能使用 Characters 方法对文本中的一部分单独设置格式)。要同时更改所有文本,通常可以对该对象直接应用某一适当的方法或属性。

/*下例将单元格 A5 的内容设置为倾斜。*/ Application.Worksheets.Item("Sheet1").Range("A5").Font.Italic = true

Charts 对象

指定的或活动工作簿中所有图表工作表的集合。

Charts.Add

新建图表工作表,并返回 [Chart](https://qn.cache.wpscdn.cn/encs/doc/office_v13/topics/WPS 基础接口/表格 API 参考/Chart/Chart 对象.htm) 对象。

/*本示例创建空白图表工作表,并将其插入到最后一张工作表之前。*/
Application.ActiveWorkbook.Charts.Add(Worksheets.Item(Worksheets.Count))

ColorFormat 对象

代表单色对象的颜色、带有渐变或图案填充的对象的前景或背景色,或者指针的颜色。

说明

可以将颜色设为显式的红-绿-蓝值(使用 RGB 属性),或设为配色方案中的一种颜色(使用 SchemeColor 属性)。

使用下表中列出的属性之一可返回 ColorFormat 对象。

使用此属性 对象 返回一个 ColorFormat 对象,该对象代表
BackColor FillFormat 背景填充色(用于阴影或图案填充格式)
ForeColor FillFormat 前景填充色(对于纯色填充格式,即代表填充颜色)
BackColor LineFormat 线条背景色(用于图案线条)
ForeColor LineFormat 线条前景色(对于纯色线条,即代表线条颜色)
ForeColor ShadowFormat 阴影颜色
ExtrusionColor ThreeDFormat 有延伸的对象的侧边颜色

使用 RGB 属性可将颜色设置为显示的红-绿-蓝值。

/*下例向 myDocument 中添加一个矩形,然后设置矩形填充的前景色、背景色和渐变。*/
function test(){
let myDocument = Worksheets.Item(1)
let myFill=  myDocument.Shapes.AddShape(msoShapeRectangle, 
        90, 90, 90, 50).Fill
    myFill.ForeColor.RGB = (128, 0, 0)
    myFill.BackColor.RGB = (170, 170, 170)
    myFill.TwoColorGradient(msoGradientHorizontal, 1)
}

Comment 对象

代表单元格批注。

使用 Comment 属性可返回 Comment 对象。下例更改单元格 E5 中的批注文本。

Application.Worksheets.Item(1).Range("A1").Comment.Text("reviewed on " + Date())

使用 AddComment 方法可在区域内添加批注。下例在第一张工作表的单元格 E5 中添加批注。

let myComment = Application.Worksheets.Item(1).Range("E5").AddComment()  
    myComment.Visible = false  
    myComment.Text("reviewed on " + Date()) 

ConnectorFormat 对象

包含应用于连接符的属性和方法。

说明

连接符是用于连接其他两个形状的线,所连接的位置叫做连接结点。如果重新排列已连接的形状,那么连接符的几何形状将自动调整,以使重新排列的形状仍保持连接。

连接结点通常按下表所示的规则进行编号。

形状类型 连接结点标号方案
自选形状、艺术字、图片和 OLE 对象 连接结点从顶部开始按逆时针进行编号。
任意多边形 连接结点为顶点,与顶点编号相对应。

使用 ConnectorFormat 属性可返回 ConnectorFormat 对象。使用 BeginConnectEndConnect 方法可将连接符的两端连到文档中的其他形状。使用 RerouteConnections 方法可自动查找通过连接符连接的两个形状间的最短路径。使用 Connector 属性可查看形状是否为连接符。

请注意,虽然向 Shapes 集合添加连接符时,对其设置了大小和位置,但将连接符的起点和终点连接到其他形状时,连接符的大小和位置将会自动调整。因而,如果打算用连接符连接其他形状,那么对其设置的初始大小和位置就没有什么实际意义。同样,用连接符连接其他形状时,将指定要连接的形状上的连接结点,但将连接符连接好之后,用 RerouteConnections 方法可能会改变连接符所连接的连接结点,使开始时选定的连接结点变得没有意义。 要算出一个复杂形状上各连接结点的编号,可以打开宏录制器并对形状进行试验操作,然后查看录下的代码;也可以创建一个形状并选中它,然后运行以下示例。这段代码将对每个连接结点进行编号并连接一个连接符。

function test(){
let mainshape = Application.ActiveWindow.Selection.ShapeRange.Item(1)
    let bx = mainshape.Left + mainshape.Width + 50
    let by = mainshape.Top + mainshape.Height + 50

let mCount = mainshape.ConnectionSiteCount
    for(let j = 1;j <= mCount;j++) { 
        let myConnector = ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 
                bx, by, bx + 50, by + 50)
            myConnector.ConnectorFormat.EndConnect(mainshape, j)
            myConnector.ConnectorFormat.Type = msoConnectorElbow
            myConnector.Line.ForeColor.RGB = (255, 0, 0)
            let l = myConnector.Left
            let t = myConnector.Top
       
        let myTextbox = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 
                l, t, 36, 14)
            myTextbox.Fill.Visible = false
            myTextbox.Line.Visible = false
            myTextbox.TextFrame.Characters().Text = j 
    }
}

/*下例向 myDocument 中添加两个矩形并且用曲线连接符连接矩形。*/
function test(){
let myDocument = Application.Worksheets.Item(1)
let s = myDocument.Shapes
let firstRect = s.AddShape(msoShapeRectangle, 100, 50, 200, 100)
let secondRect = s.AddShape(msoShapeRectangle, 300, 300, 200, 100)
let c = s.AddConnector(msoConnectorCurve, 0, 0, 0, 0)
    c.ConnectorFormat.BeginConnect(firstRect, 1)
    c.ConnectorFormat.EndConnect(secondRect, 1)
    c.RerouteConnections()
}

FileDialog 对象

提供文件对话框,其功能与 WPS Office应用程序中标准的**"打开""保存"**对话框类似。

说明

使用 FileDialog 属性返回一个 FileDialog 对象。FileDialog 属性位于每个单独 Office 应用程序的 Application 对象中。该属性使用一个参数 DialogType 确定该属性返回的 FileDialog 对象类型。FileDialog 对象有四种类型:

  • **"打开"**对话框 - 允许用户选择一个或多个可以在宿主应用程序中使用 Execute 方法打开的文件。
  • **"另存为"**对话框 - 允许用户选择一个文件,然后可以使用 Execute 方法将当前文件另存为该文件。
  • **"文件选取器"**对话框 - 允许用户选择一个或多个文件。用户选择的文件路径将捕获到 FileDialogSelectedItems 集合中。
  • **"文件夹选取器"**对话框 - 允许用户选择一个路径。用户选择的路径将捕获到 FileDialogSelectedItems 集合中。

每个宿主应用程序只能创建一个 FileDialog 对象实例。因此,即使创建多个 FileDialog 对象,FileDialog 对象的很多属性也会保持不变。所以,在显示对话框之前请确保已经针对用途适当地设置了所有属性。

方法

名称 说明
[Execute](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.Execute) 在调用 Show 方法后立即执行用户的操作。
[Show](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.Show) 显示文件对话框并返回一个 Long 类型的值,指示用户按下的是**"操作"按钮 (-1) 还是 "取消"按钮 (0)。在调用 Show 方法时,在用户关闭文件对话框之前不会执行其他代码。在 "打开" "另存为"**对话框中,在使用了 Show 方法后会立即使用 Execute 方法执行用户操作。

属性

名称 说明
[AllowMultiSelect](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.AllowMultiSelect) 如果允许用户从文件对话框中选择多个文件,则为 True。可读/写。
[Application](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.Application) 获取一个 Application 对象,代表 FileDialog 对象的容器应用程序(可以使用 Automation 对象的此属性返回该对象的容器应用程序)。只读。
[ButtonName](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.ButtonName) 设置或获取代表文件对话框中动作按钮上所显示文本的 String 类型的值。可读/写。注释WPS Office Assistant 在 WPS Office 2015 版中已被淘汰。
[Creator](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.Creator) 获取一个 32 位整数,指示创建 FileDialog 对象时所使用的应用程序。只读。
[DialogType](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.DialogType) 返回一个 MsoFileDialogType 常量,代表 FileDialog 对象被设置为要显示的文件对话框的类型。只读。
[FilterIndex](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.FilterIndex) 获取或设置一个 Long 类型的值,指示文件对话框的默认文件筛选器。默认筛选器决定首次打开文件对话框时显示的文件类型。可读/写。
[Filters](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.Filters) 获取一个 FileDialogFilters 集合。只读。
[InitialFileName](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.InitialFileName) 设置或返回一个 String 类型的值,代表文件对话框中初始显示的路径或文件名。可读/写。
[InitialView](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.InitialView) 获取或设置一个 MsoFileDialogView 常量,代表文件对话框中文件和文件夹的初始表示形式。可读/写。
[Item](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.Item) 获取与对象关联的文本。只读。
[Parent](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.Parent) 获取 FileDialog 对象的 Parent 对象。只读。
[SelectedItems](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.SelectedItems) 获取一个 FileDialogSelectedItems 集合。此集合包含用户在使用 FileDialog 对象的 Show 方法显示的文件对话框中所选的文件的路径列表。只读。
[Title](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/通用 API 参考/FileDialog/FileDialog .htm#FileDialog.Title) 设置或获取使用 FileDialog 对象显示的文件对话框的标题。可读/写。
++

Font 对象

包含对象的字体属性(字体名称、字号、颜色等等)。

说明

如果不想将单元格中的文本或图形设为相同的格式,则使用 Characters 属性返回文本的子集。

使用 Font 属性可返回 Font 对象。下例将单元格区域 A1:C5 的格式设置为加粗。

Application.Worksheets.Item("Sheet1").Range("A1:C5").Font.Bold = true

FormatColor 对象

代表为色阶条件格式阈值指定的填充色或数据条条件格式的条形颜色。

说明

您可以通过传递 [Color ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/FormatColor/FormatColor .htm#FormatColor.Color)属性中的 RGB 值来选择颜色,或者通过使用 [ThemeColor ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/FormatColor/FormatColor .htm#FormatColor.ThemeColor)属性在主题调色板中编制索引来指定颜色。

以下代码示例创建了一个数字范围,然后将双色色阶条件格式规则应用于该范围。然后通过在 ColorScaleCriteria 集合中编制索引来设置单独的条件,从而指定最小阈值的颜色为红色,最大阈值的颜色为蓝色。

let sheet = Application.ActiveSheet
  sheet.Range('C1').Value2 = 1
  sheet.Range('C2').Value2 = 2
  sheet.Range('C1:C2').AutoFill(Application.Range('C1:C10'))

  Application.Range('C1:C10').Select()

  //Create a two-color ColorScale object for the created sample data range
  let cfColorScale = Application.Selection.FormatConditions.AddColorScale(2)

  //Set the minimum threshold to red and maximum threshold to blue
  cfColorScale.ColorScaleCriteria.Item(1).FormatColor.Color = (255, 0, 0)
  cfColorScale.ColorScaleCriteria.Item(2).FormatColor.Color = (0, 0, 255)

GroupShapes 对象

代表一组形状中的单个形状。

说明

每个形状都由一个 Shape 对象代表。将 Item 方法与此对象一起使用,您可以在不取消分组的情况下处理组合的各个形状。

使用 GroupItems 属性可返回 GroupShapes 集合。使用 GroupItems (index )(其中 index 是分组的形状中单个形状的编号)可从 GroupShapes 集合中返回单个形状。

let myDocument = Application.Worksheets.Item(1)
let shape1 = myDocument.Shapes
    shape1.AddShape(msoShapeIsoscelesTriangle, 10, 10, 100, 100).Name = "shpOne"
    shape1.AddShape(msoShapeIsoscelesTriangle, 150, 10, 100, 100).Name = "shpTwo"
    shape1.AddShape(msoShapeIsoscelesTriangle, 300, 10, 100, 100).Name = "shpThree"
    let shape2 = shape1.Range(["shpOne", "shpTwo", "shpThree"]).Group()
        shape2.Fill.PresetTextured(msoTextureBlueTissuePaper)
        shape2.GroupItems.Item(2).Fill.PresetTextured(msoTextureGreenMarble)

HeaderFooter 对象

代表单一页眉或页脚。HeaderFooter 对象是 HeadersFooters 集合的一个成员。HeadersFooters 集合包含指定工作簿节中的所有页眉和页脚。

说明

您也可以使用 HeaderFooter 属性和 Selection 对象来返回单个 HeaderFooter 对象。

注释
不能将 HeaderFooter 对象添加到 HeadersFooters 集合。

使用 PageSetup 对象的 DifferentFirstPageHeaderFooter 属性可指定不同的首页。

使用 PageNumbers 对象的 Add 方法可在页眉或页脚中添加页码。以下示例在活动工作簿第一节的主页脚中添加页码。

let sheet1 = Application.ActiveSheet.PageSetup
    sheet1.CenterHeader = "&D&T"
    sheet1.OddAndEvenPagesHeaderFooter = false
    sheet1.DifferentFirstPageHeaderFooter = false
    sheet1.ScaleWithDocHeaderFooter = true
    sheet1.AlignMarginsHeaderFooter = true

代表工作表或区域的超链接的集合。

Hyperlinks.Add

向指定的区域或形状添加超链接。返回一个 [Hyperlink](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Hyperlink/Hyperlink .htm#jsObject_Hyperlink) 对象,它代表新的超链接。

/* 向单元格 A5 添加超链接。*/
  let sheet2 = Application.Worksheets.Item(1)
  sheet2.Hyperlinks.Add(
    sheet2.Range('a5'),
    'http://example.microsoft.com',
    null,
    'Microsoft Web Site',
    'Microsoft'
  )

  /* 向单元格 A3 添加一个电子邮件超链接。*/
  let sheet3 = Application.Worksheets.Item(1)
  sheet3.Hyperlinks.Add(
    sheet2.Range('a3'),
    'mailto:someone@example.com?subject=hello',
    null,
    'Write us today',
    'Support'
  )

Interior 对象

代表一个对象的内部。

说明

使用 [Interior](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Interior/Interior .htm#jsObject_Interior) 属性可返回 Interior 对象。下例将单元格 A1 的内部设置为红色。

Application.Worksheets.Item("Sheet1").Range("A1").Interior.ColorIndex = 3

MultiThreadedCalculation 对象

返回或设置并发计算模式。

属性

名称 说明
[Application](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/MultiThreadedCalculation/MultiThreadedCalculation .htm#MultiThreadedCalculation.Application) 如果不与对象识别符一起使用,则此属性返回代表 ET 应用程序的 Application 对象。如果与对象识别符一起使用,则此属性返回代表指定对象的创建者的 Application 对象。只读。
[Creator](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/MultiThreadedCalculation/MultiThreadedCalculation .htm#MultiThreadedCalculation.Creator) 返回一个 32 位整数,该整数指示在其中创建此对象的应用程序。只读 Long 类型。
[Enabled](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/MultiThreadedCalculation/MultiThreadedCalculation .htm#MultiThreadedCalculation.Enabled) 使用 Enabled 属性可以在运行时启用或禁用 MultiThreadedCalculation 对象。可读/写。
[Parent](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/MultiThreadedCalculation/MultiThreadedCalculation .htm#MultiThreadedCalculation.Parent) 返回指定对象的父对象。只读。
[ThreadCount](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/MultiThreadedCalculation/MultiThreadedCalculation .htm#MultiThreadedCalculation.ThreadCount) 获取进程的线程总数,这些线程是指定的 MultiThreadedCalculation 对象的一部分。
[ThreadMode](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/MultiThreadedCalculation/MultiThreadedCalculation .htm#MultiThreadedCalculation.ThreadMode) 返回或设置指定的 MultiThreadedCalculation 对象的线程模式。可读/写 XlThreadMode 类型。

TextFrame2 对象

代表 ShapeShapeRangeChartFormat 对象的文本框。

说明

该对象包含文本框中的文本,还包含控制文本框对齐方式和位置的属性和方法。使用 TextFrame2 属性可返回 TextFrame2 对象。

示例

下例向 myDocument 添加一个矩形,向矩形添加文本,然后设置文本框的边距。

示例代码
function test() { let myDocument = Application.Worksheets.Item(1) let rng = myDocument.Shapes.AddShape(Application.Enum.msoShapeRectangle, 0, 0, 250, 140).TextFrame2 rng.TextRange.Text = "Here is some test text" rng.MarginBottom = 10 rng.MarginLeft = 10 rng.MarginRight = 10 rng.MarginTop = 10 }

RecentFile 对象

代表最近使用的文件列表中的某个文件。

说明

RecentFile 对象是 RecentFiles 集合的成员

示例

本示例打开 Analysis.xls 工作簿,然后运行它的 Auto_Open 宏。

Application.RecentFiles.Item(2).Open()

Range 对象

代表某一单元格、某一行、某一列、某一选定区域(该区域可包含一个或若干连续单元格区域),或者某一三维区域。

说明

示例部分中说明了以下用于返回 Range 对象的属性和方法:

示例

使用 Range (arg )(其中 arg 为区域名称)可返回一个代表单个单元格或单元格区域的 Range 对象。下例将单元格 A1 中的值赋给单元格 A5。

Application.Worksheets.Item("Sheet1").Range("A5").Value2 = Application.Worksheets.Item("Sheet1").Range("A1").Value2 

下例通过为区域 A1:H8 中的每个单元格设置公式,用随机数字填充该区域。如果在不带对象识别符(句点左边的对象)的情况下使用 Range 属性,该属性会返回活动表上的一个区域。如果活动表不是工作表,则该方法失败。在使用没有显式对象识别符的 Range 属性之前,请先使用 [Activate](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Range/Range .htm#Range.Activate) 方法激活一个工作表。

function test()
{
    Application.Worksheets.Item("Sheet1").Activate()
    //Range is on the active sheet
    Application.Range("A1:H8").Formula = "=Rand()" 
}

下例清除区域名为"Criteria "的区域中的内容。

注释:如果用文本参数指定区域地址,必须以 A1 样式记号指定该地址(不能用 R1C1 样式记号)。

Application.Worksheets.Item(1).Range("Criteria").ClearContents()

使用 Cells (row , column )(其中 row 是行号,column 是列标)可返回一个单元格。下例将单元格 A1 赋值为 24。

Application.Worksheets.Item(1).Cells.Item(1, 1).Value2 = 24

下例设置单元格 A2 的公式。

Application.ActiveSheet.Cells.Item(2, 1).Formula = "=Sum(B1:B5)"

虽然也可用 Range("A1") 返回单元格 A1,但有时用 Cells 属性更为方便,因为对行或列使用变量。下例在 Sheet1 上创建行号和列标。注意,当工作表激活以后,使用 Cells 属性时不必明确声明工作表(它将返回活动工作表上的单元格)。

注释:虽然可用 Visual Basic 字符串函数转换 A1 样式引用,但使用 Cells(1, 1) 记号更为简便(而且也是更好的编程习惯)。

function test()
{
    Application.Worksheets.Item("Sheet1").Activate()
    for(let i = 1; i <= 5; i++)
    {
        Application.Cells.Item(1, i + 1).Value2 = 1990 + i 
    } 

    for(let j = 1; j <= 4; j++)
    {
        Application.Cells.Item(j + 1, 1).Value2 = "Q" + j
    }
}

使用 expression .Cells (row , column )(其中 expression 是返回 Range 对象的表达式,rowcolumn 是相对于该区域左上角的偏移量)可返回区域中的一部分。下例设置单元格 C5 中的公式。

Application.Worksheets.Item(1).Range("C5:C10").Cells.Item(1, 1).Formula = "=Rand()"

使用 Range (cell1, cell2 )(其中 cell1cell2 是指定起始和终止单元格的 Range 对象)可返回一个 Range 对象。下例设置单元格区域 A1:J10 的边框线条的样式。

注释:请注意每个 Cells 属性之前的句点。如果前导的 With 语句应用于 Cells 属性,那么这些句点就是必需的。本示例中,句点指示单元格处于工作表一上。如果没有句点,Cells 属性将返回活动工作表上的单元格。

Application.Worksheets.Item(1).Range(Worksheets.Item(1).Cells.Item(1, 1),Application.Worksheets.Item(1).Cells.Item(10, 10)).Borders.LineStyle = xlThick

使用 Offset (row, column )(其中 rowcolumn 为行偏移量和列偏移量)可返回相对于另一区域在指定偏移量处的区域。下例选定位于当前选定区域左上角单元格的向下三行且向右一列处的单元格。由于必须选定位于活动工作表上的单元格,因此必须先激活工作表。

function test()
{
    Application.Worksheets.Item("Sheet1").Activate() 
    //Can't select unless the sheet is active 
    Application.Selection.Offset(3, 1).Range("A1").Select()
}

使用 Union (range1, range2, ...) 可返回多块区域,即该区域由两个或多个连续的单元格区域所组成。下例创建由单元格区域 A1:B2 和 C3:D4 组合定义的对象,然后选定该定义区域。

function test()
{
    Application.Worksheets.Item("Sheet1").Activate()
    let r1 = Range("A1:B2") let r2 = Range("C3:D4")
    let myMultiAreaRange = Union(r1, r2)
    Application.myMultiAreaRange.Select()
}

如果您处理包含多个区域的选定内容,[Areas](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Range/Range .htm#Range.Areas) 属性是很有用的。它将多区域选定内容拆分为单个的 Range 对象,然后将对象返回为一个集合。您可以对返回的集合使用 [Count](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Range/Range .htm#Range.Count) 属性,以查找包含多个区域的选定内容,如下例所示。

function test()
{ 
    let NumberOfSelectedAreas = Application.Selection.Areas.Count
    if(NumberOfSelectedAreas > 1)
    {
        MsgBox("You cannot carry out this command " + "on multi-area selections")
    }
}

Shape 对象

代表绘图层中的对象,例如自选图形、任意多边形、OLE 对象或图片。

说明

[Shape](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Shape/Shape .htm#jsObject_Shape) 对象是 [Shapes](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Shapes/Shapes .htm#jsObject_Shapes) 集合的成员。Shapes 集合包含某个工作簿中的所有形状。

注释:有三个代表形状的对象:Shapes 集合,它代表工作簿中所有的形状;[ShapeRange ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/ShapeRange/ShapeRange .htm#jsObject_ShapeRange) 集合,它代表工作簿中形状的指定子集(例如,ShapeRange 对象可以代表工作簿中的形状一和形状四,或者,可以代表工作簿中所有选定的形状); [Shape](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Shape/Shape .htm#jsObject_Shape) 对象,它代表文档中的某一个形状。如果您需要同时处理几个形状,或处理选定区域中的多个形状,请使用 ShapeRange 集合。

使用 Shape 对象

以下各节说明了如何:

  • 返回与连接符的端点相连的形状。
  • 返回新建的任意多边形。
  • 返回组中的单个形状。
  • 返回新组成的形状组。
  • 返回现有的形状。
  • 返回选定区域中的形状。返回与连接符的端点相连的形状

要返回一个代表连接符所连接形状之一的 Shape 对象,请使用 BeginConnectedShapeEndConnectedShape 属性。

1. 返回新建的任意多边形

使用 BuildFreeformAddNodes 方法可定义一个新任意多边形的几何特性,使用 ConvertToShape 方法可创建任意多边形并返回代表它的 Shape 对象。

2. 返回组中的单个形状

使用 [GroupItems](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/演示 API 参考/Shape/Shape .htm#Shape.GroupItems) (index )(其中 index 是形状的名称或组中的索引号)可返回一个代表一组形状中某一形状的 Shape 对象。

3. 返回新组成的形状组

使用 GroupRegroup 方法可将一系列形状分成一组并返回一个 Shape 对象,该对象代表新形成的组。在形成了一个组之后,您可以按您处理其他任何形状的方法来处理该组

4. 返回现有的形状

使用 [Shapes](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Shapes/Shapes .htm#jsObject_Shapes) (index )(其中 index 是形状名称或索引号)可返回代表某个形状的 Shape 对象。

5. 返回选定区域中的形状

使用 Selection.ShapeRange(index )(其中 index 是形状名称或索引号)可返回一个代表选定区域中的形状的 Shape 对象。

Shapes 对象

指定的工作表上的所有 **[Shape](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Shape/Shape .htm#Shape.Shape)**对象的集合。

说明

每个 **[Shape](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Shape/Shape .htm#Shape.Shape)**对象都代表绘图层中的一个对象,如自选图形、任意多边形、OLE 对象或图片。

注释: 如果您想处理文档中的一部分形状(例如,只针对文档中的自选图形或只对选定的形状进行一些操作),则必须构造一个 **[ShapeRange](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/ShapeRange/ShapeRange .htm#ShapeRange.ShapeRange)**集合,其中包含您要处理的形状。

使用 Shapes 属性可返回 **[Shapes](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Shapes/Shapes .htm#Shapes.Shapes)**集合。下例选定 myDocument 上的所有形状。

注释: 如果您要同时对工作表上的所有形状进行操作(例如删除或设置属性),请选定所有形状,然后对选定区域使用 ShapeRange 属性,以创建一个 **[ShapeRange](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/ShapeRange/ShapeRange .htm#ShapeRange.ShapeRange)**对象,该对象包含工作表上的所有形状,然后对 [ShapeRange](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/ShapeRange/ShapeRange .htm#ShapeRange.ShapeRange) 对象应用相应的属性或方法。

Sheets 对象

指定的或活动工作簿中所有工作表的集合。

说明

Sheets 集合可以包含 Chart[Worksheet](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Worksheet/Worksheet .htm#jsObject_Worksheet) [ ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Worksheet/Worksheet .htm#jsObject_Worksheet)对象。

如果希望返回所有类型的工作表,[Sheets ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Sheets/Sheets .htm#jsObject_Sheets)集合就非常有用。如果仅需使用某一类型的工作表,请参阅该工作表类型的对象主题。

使用 Sheets 属性可返回 Sheets 集合。下例打印当前活动工作簿上的所有工作表。

Application.Sheets.PrintOut()

使用 [Add](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Sheets/Sheets .htm#Sheets.Add) [ ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Sheets/Sheets .htm#Sheets.Add)方法可创建一个新的工作表并将它添加到集合。下例给活动工作簿添加两个图表工作表,将它们放在工作簿中的工作表二之后。

Application.Sheets.Add(null, Application.Sheets.Item(2),2,xlChart)

使用 Sheets (index )(其中 index 是工作表名称或索引号)可返回一个 Chart[Worksheet](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Worksheet/Worksheet .htm#jsObject_Worksheet) [ ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Worksheet/Worksheet .htm#jsObject_Worksheet)对象。下例激活名为"Sheet1"的工作表。

Application.Sheets.Item("sheet1").Activate()

使用 Sheets (array) 可指定多个工作表。下例将名为"Sheet4"和"Sheet5"的工作表移到工作簿的开头。

Application.Sheets.Item(["Sheet4", "Sheet5"]).Move(Application.Sheets.Item(1))

Sort 对象

代表数据区域的排序方式。

说明

以下示例在活动工作表中生成一个数据区域并对这些数据排序。

Application.Worksheets.Item('Sheet1').Range('A1').Value2 = 'Name'
  Application.Worksheets.Item('Sheet1').Range('A2').Value2 = 'Bill'
  Application.Worksheets.Item('Sheet1').Range('A3').Value2 = 'Rod'
  Application.Worksheets.Item('Sheet1').Range('A4').Value2 = 'John'
  Application.Worksheets.Item('Sheet1').Range('A5').Value2 = 'Paddy'
  Application.Worksheets.Item('Sheet1').Range('A6').Value2 = 'Kelly'
  Application.Worksheets.Item('Sheet1').Range('A7').Value2 = 'William'
  Application.Worksheets.Item('Sheet1').Range('A8').Value2 = 'Janet'
  Application.Worksheets.Item('Sheet1').Range('A9').Value2 = 'Florence'
  Application.Worksheets.Item('Sheet1').Range('A10').Value2 = 'Albert'
  Application.Worksheets.Item('Sheet1').Range('A11').Value2 = 'Mary'
  // alert("The list is out of order.  Hit Ok to continue..." + jsInformation)

  //Selecting a cell within the range.
  Application.Worksheets.Item('Sheet1').Range('A2').Select()

  //Applying sort.
  let sor = Application.Worksheets.Item('Sheet1').Sort
  sor.SortFields.Clear()
  sor.SortFields.Add(
    Application.Worksheets.Item('Sheet1').Range('A2:A11'),
    Application.Enum.xlSortOnValues,
    Application.Enum.xlAscending,
    Application.Enum.xlSortNormal
  )
  sor.SetRange(Application.Worksheets.Item('Sheet1').Range('A1:A11'))
  sor.Header = Application.Enum.xlYes
  sor.MatchCase = false
  sor.Orientation = Application.Enum.xlTopToBottom
  sor.SortMethod = Application.Enum.xlPinYin
  sor.Apply()
  // alert('Sort complete.' + jsInformation)

Style 对象

代表区域的样式说明。

说明

Style 对象包含样式的所有属性(字体、数字格式、对齐方式,等等)。有几种内置样式,包括"常规"、"货币"和"百分比"。同时对多个单元格修改单元格格式属性时,使用 Style 对象是快捷高效的方法。

对于 [Workbook ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Workbook/Workbook .htm#jsObject_Workbook)对象,Style 对象是 [Styles ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Styles/Styles .htm#jsObject_Styles)集合的成员。Styles 集合包含该工作簿的所有已定义样式。

通过更改应用于单元格的样式的属性可更改单元格的外观。但要记住,更改样式的属性将影响所有以该样式格式化了的单元格。

样式按照名称的字母顺序排序。样式编号表明指定样式在样式名排序列表中的位置。Styles(1) 是排序列表中的第一个样式,而 Styles(Styles.Count) 是最后一个。

有关创建和修改样式的详细信息,请参阅 [Styles ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Styles/Styles .htm#jsObject_Styles)对象。

使用 Style 属性可返回一个用于 Range 对象的 Style 对象。下例将"百分比"样式应用于 Sheet1 中的单元格区域 A1:A10。

Application.Worksheets.Item("Sheet1").Range("A1:A10").Style = "Percent"

使用 Styles (index )(其中 index 是样式索引号或名称)可从工作簿的 Style 集合中返回一个 Styles 对象。下例通过设置活动工作簿中"常规"样式的 Bold 属性来更改该样式。

Application.ActiveWorkbook.Styles.Item("Normal").Font.Bold = true

Window 对象

代表窗口。

说明

许多工作表特征(如滚动条和标尺)实际上是窗口的属性。Window 对象是 [Windows](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Windows/Windows .htm#jsObject_Windows) 集合的成员。Application 对象的 Windows 集合包含应用程序中的所有窗口,而 Workbook 对象的 [Windows](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Windows/Windows .htm#jsObject_Windows) 集合只包含指定工作簿中的窗口。

示例

使用 Windows (index )(其中 index 是窗口名称或索引号)可返回一个 Window 对象。下例最大化活动窗口。

Application.Windows.Item(1).WindowState = xlMaximized

Workbook 对象

代表一个 ET 工作簿。

说明

Workbook 对象是 [Workbooks ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Workbooks/Workbooks .htm#jsObject_Workbooks)集合的成员。[Workbooks](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Workbooks/Workbooks .htm#jsObject_Workbooks) [ ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Workbooks/Workbooks .htm#jsObject_Workbooks)集合包含 ET 中当前打开的所有 Workbook 对象。

示例

使用 Workbooks (index )(其中 index 是工作簿名称或索引号)可返回一个 Workbook对象。下例激活工作簿一。

Application.Workbooks.Item(1).Activate()

编号指示创建或打开工作簿的顺序。Workbooks(1) 是创建的第一个工作簿,而 Workbooks(Workbooks.Count)Workbooks 是最后一个。激活某工作簿并不更改其索引号。所有工作簿均包括在索引计数中,即便是隐藏工作簿也是如此。

[Name ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Workbook/Workbook .htm#Workbook.Name)属性返回工作簿名称。您不能通过使用此属性来设置该名称;如果您需要更改该名称,请使用 [SaveAs ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Workbook/Workbook .htm#Workbook.SaveAs)方法,将该工作簿保存为其他名称。下例激活名为"Cogs.xls"的工作簿(该工作簿必须已经在 ET 中打开)中的 Sheet1。

Application.Workbooks.Item("Cogs.xls").Worksheets.Item("Sheet1").Activate()

Worksheet 对象

代表一个工作表。

说明

Worksheet 对象是 [Worksheets ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Worksheets/Worksheets .htm#jsObject_Worksheets)集合的成员。Worksheets 集合包含某个工作簿中所有的 Worksheet 对象。

Worksheet 对象也是 [Sheets ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Sheets/Sheets .htm#jsObject_Sheets)集合的成员。Sheets 集合包含工作簿中所有的工作表(图表工作表和工作表)。

示例

使用 [Worksheets](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Worksheets/Worksheets .htm#jsObject_Worksheets)( index )(其中 index 是工作表索引号或名称)可返回一个 Worksheet 对象。下例隐藏活动工作簿中的工作表一。

Application.Worksheets.Item(1).Visible = false

工作表索引号指示该工作表在工作簿的标签栏上的位置。Worksheets(1) 是工作簿中第一个(最左边的)工作表,而 Worksheets(Worksheets.Count) 是最后一个。所有工作表均包括在索引计数中,即便是隐藏工作表也是如此。

工作表名称显示在该工作表的标签上。使用 [Name ](https://qn.cache.wpscdn.cn/encs/doc/office_v19/apiObjectTemplate.htm?page=topics/WPS 基础接口/表格 API 参考/Worksheet/Worksheet .htm#Worksheet.Name)属性可设置或返回工作表名称。下例保护 Sheet1 上的方案。

let strPassword = prompt("Enter the password for the worksheet")
Application.Worksheets.Item("Sheet1").Protect(strPassword,null,null,true)

当工作表处于活动状态时,可以使用ActiveSheet 属性来引用它。下例使用Activate方法激活 Sheet1,将页面方向设置为横向,然后打印该工作表。

Application.Worksheets.Item("Sheet1").Activate()
Application.ActiveSheet.PageSetup.Orientation = xlLandscape
Application.ActiveSheet.PrintOut()
相关推荐
开心工作室_kaic6 分钟前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
刚刚好ā6 分钟前
js作用域超全介绍--全局作用域、局部作用、块级作用域
前端·javascript·vue.js·vue
沉默璇年1 小时前
react中useMemo的使用场景
前端·react.js·前端框架
yqcoder2 小时前
reactflow 中 useNodesState 模块作用
开发语言·前端·javascript
2401_882727572 小时前
BY组态-低代码web可视化组件
前端·后端·物联网·低代码·数学建模·前端框架
SoaringHeart2 小时前
Flutter进阶:基于 MLKit 的 OCR 文字识别
前端·flutter
会发光的猪。2 小时前
css使用弹性盒,让每个子元素平均等分父元素的4/1大小
前端·javascript·vue.js
天下代码客3 小时前
【vue】vue中.sync修饰符如何使用--详细代码对比
前端·javascript·vue.js
猫爪笔记3 小时前
前端:HTML (学习笔记)【1】
前端·笔记·学习·html
前端李易安3 小时前
Webpack 热更新(HMR)详解:原理与实现
前端·webpack·node.js