如何使用libreoffice宏将文本放入当前所选单元格左侧的单元格中?

时间:2016-01-08 16:56:06

标签: libreoffice-calc libreoffice-basic

我正在尝试编写一个宏,该宏从当前选定的单元格中获取一个字符串,并将该字符串的修改版本放入所选单元格左侧的单元格中。

到目前为止,我的Google-fu已经让我获取所选单元格的内容并操纵字符串,因此它已准备好进入左侧的单元格,如下所示:

oCell = ThisComponent.getCurrentSelection()
dim d1 as string
dim d2 as string
dim d3 as string
dim d4 as string
dim d5 as string

d1=oCell.getString()
d2=mid(d1,1,2)
d3=mid(d1,4,2)
d4=mid(d1,7,4)
d5=d4+d3+d2

但我无法弄清楚如何将d5放入oCell左侧的单元格中

我还没有开始研究如何为一系列选定的细胞做这项工作,我想我首先要让它适用于一个细胞:)

1 个答案:

答案 0 :(得分:2)

OpenOffice API的一个很好的资源是Andrew Pitonyak的 OpenOffice Macros Explained 一书,可以从his website免费下载。

另一个资源是Xray工具,可从Bernard Marcelly's website获得。下面是检查oCell对象的Xray工具的图片,显示它有一个方法.getCellAddress,它返回一个包含属性ColumnRowSheet的结构。

Xray of oCell

知道了这一点,你可以看到类似这样的代码会让你到左边的单元格(当然你需要添加一个错误检查,你还没有在最左边的列上):

oAddress = oCell.getCellAddress()
oLeftCell = ThisComponent.Sheets(oAddress.Sheet).getCellByPosition(oAddress.Column-1,oAddress.Row)
oLeftCell.setString(d5)