Cells and Ranges
工作表由两-列表二维数组含有单元格。 每个单元格都由定义的x和y-进行的左上方单元格位置(0,0)。
运算符==寻址和编辑单个单元格==
以下示例会建立一个对象引用左上角单元格和插入文字的单元格:
lang="">
Dim Doc As Object Dim Sheet As Object Dim单元格对象
Doc=ThisComponent
Sheet=Doc.Sheets(0)
Cell=Sheet.getCellByPosition(0,0)
Cell.String="test"
</source>
除数字坐标外,每个单元格的工作表的名称,例如,左上角单元格(0,0)电子表格是称为 A1。 “字母 A 表示列,数字1表示行。 这是非常重要的"名称"和"位置"单元格混乱,因为行计数是名称从1开始的,但位置计数是从0开始的。
在 Apache OpenOffice、表格单元格可以为空或包含文本、数字或公式。 单元格的类型是不确定的内容被保存在该单元格,而是对象属性决定用于其条目的。 可以将它们插入和调用一个具有 值 属性,文本 字符串 属性,并且公式的 公式 属性。
lang="">
Dim Doc As Object Dim Sheet As Object Dim单元格对象
Doc=ThisComponent
Sheet=Doc.Sheets(0)
Cell=Sheet.getCellByPosition(0,0)
Cell.value=100
Cell=Sheet.getCellByPosition(0,1)
Cell.String="test"
Cell=Sheet.getCellByPosition(0,2)
Cell.formula="=A1"
</source>
此示例在单元格A1到A3中分别插入了一个数字、一个词和一个公式。
The Value, String, and Formula properties supersede the PutCell method for setting the values of a table cell. |
Apache OpenOffice 将单元格内容,使用输入的 字符串 属性为文字,即使是数字。 数字在左-对齐的单元格而不是从右-对齐。 您还应注意区别文本之间和编号使用公式时:
lang="">
Dim Doc As Object Dim Sheet As Object Dim单元格对象
Doc=ThisComponent
Sheet=Doc.Sheets(0)
Cell=Sheet.getCellByPosition(0,0)
Cell.value=100
Cell=Sheet.getCellByPosition(0,1)
Cell.String=1000
Cell=Sheet.getCellByPosition(0,2)
Cell.formula="相加"
MsgBox Cell.value
</source>
尽管单元格A1中含有的数值是100,单元格A2中含有的数值是1000,但是公式返回100。 这是因为内容的单元格A2中作为字串输入并不是数字。
要检查单元格内容是包含一个数字或一个字符串,请使用 类型 属性:
lang="">
Dim Doc As Object Dim Sheet As Object Dim单元格对象
Doc=ThisComponent
Sheet=Doc.Sheets(0)
Cell=Sheet.getCellByPosition(1,1)
Cell.value=1000
Select Case
如果
MsgBox"内容:为空"
如果
MsgBox"内容:值"
如果
MsgBox"内容:text"
如果
MsgBox"内容:公式"
End Select
</source>
} 属性将返回值/枚举标识内容类型的单元格。 可能的值包括:
- 为空
- 没有值
- 值
- 编号
- 文字
- 字符串
- 公式
- 公式
插入、删除、复制和移动单元格
除了可以直接修改单元格的内容, Apache OpenOffice Calc还提供了一个接口,用于插入、删除、复制或合并单元格。 将用户界面(/),可通过电子表格对象并提供了四种方法来修改单元格的内容。
} insertCell 方法用于插入单元格的工作表。
lang="">
Dim Doc As Object Dim Sheet As Object Dim CellRangeAddress为新
Doc=ThisComponent
Sheet=Doc.Sheets(0)
=0
=1
=1
=2
=2
Sheet.insertCells(CellRangeAddress,.CellInsertMode.DOWN)
</source>
此示例在工作表文档中第一个工作表(编号为0)的第二列、第二行交叉处(行、列编号都为1)插入一个大小为两行乘两列的单元格区域。 现有的数值指定的单元格区域中移到区域之下。
要定义单元格区域中要插入,请使用/结构。 下面的值是包含在该结构:
- 工作表(短整数)
- 工作表编号(从0开始)。
- StartColumn(长整数)
- 第一列的单元格区域(编号从0开始)。
- StartRow(长整数)
- 第一行的单元格区域(编号从0开始)。
- EndColumn(长整数)
- 最后"列中的单元格区域(编号从0开始)。
- EndRow(长整数)
- 最后一行的单元格区域(编号从0开始)。
完成 CellRangeAddress 结构必须传递的第一个参数添加到 insertCells 方法。 第二个参数 insertCells 包含一个值,/枚举和定义如何处理方式的值都位于"前面的插入位置。 } 枚举可以识别以下值:
- 无
- 当前值保留在当前位置。
- 关闭
- 在单元格及插入位置向下移动。
- 右
- 在单元格和右侧的插入位置的右边。
- 行
- 之后的行插入位置向下移动。
- 列
- 之后的列插入位置的右边。
} removeRange 方法是对应 insertCells 方法。 此方法用于删除区域定义的 CellRangeAddress 结构从工作表。
lang="">
Dim Doc As Object Dim Sheet As Object Dim CellRangeAddress为新
Doc=ThisComponent
Sheet=Doc.Sheets(0)
=0
=1
=1
=2
=2
Sheet.removeRange(CellRangeAddress,CellDeleteMode.UP)
</source>
此示例删除了 b2:C3 单元格区域的工作表,然后将的单元格向上移动两行。 删除类型由以下某一值/枚举:
- 无
- 当前值保留在当前位置。
- 启动
- 单元格及以下的插入位置向上移动。
- 左侧
- 在单元格和右侧的插入位置的左边。
- 行
- 之后的行插入位置向上移动。
- 列
- 之后的列插入位置的左边。
} 接口提供了两种其他方法来移动(moveRange)或复制(copyRange)Cell区域。 以下示例将移动的 b2:C3 区域,以使该区域从 a6:
lang="">
Dim Doc As Object Dim Sheet As Object Dim CellRangeAddress为新 Dim CellAddress作为新.table.CellAddress
Doc=ThisComponent
Sheet=Doc.Sheets(0)
=0
=1
=1
=2
=2
=0
=0
=5
Sheet.moveRange(CellAddress、CellRangeAddress)
</source>
除了 CellRangeAdress 结构中, 被moveRange 方法需要/结构来定义要来源移动到的目标区域。 } CellAddress 方法提供了以下值:
- 工作表(短整数)
- 工作表(编号从0开始)。
- 列(长整数)
- 已确定的列(编号从0开始)。
- Row(长整数)
- 已确定的行编号(从0开始)。
将单元格内容与目标区域中的结果覆盖 moveRange 方法。 与 InsertCells 方法不同,参数执行自动移动中不提供了 removeRange 方法。
} copyRange 方法函数的相同, 被moveRange 方法相同, copyRange 的复制件插入单元格区域而不移动该。
In terms of their function, the Apache OpenOffice 基本 insertCell、 removeRange及 copyRange 方法与VBA 就功能而言, Range.Delete 和 Range.Copy 方法。 而在VBA中,这些方法应用到相应的 区域 对象,而在 Apache OpenOffice Basic中,则用于相关 工作表 对象。 |
Content on this page is licensed under the Public Documentation License (PDL). |