我有一个程序可以将CSV文件中的数据显示到ListView中。 然后我有一个名为“Reports”的按钮 - 当我点击这个时,我希望从OpenOffice Calc中的ListView / CSV文件中显示数据。
这是我的代码:
Private Sub cmdReports_Click()
Dim oSM As Object
Dim oDesk As Object
Dim oDoc As Object
Dim oSheet As Object
Dim i As Integer
'Instanciate OOo : this line is mandatory with VB for OOo API
Set oSM = CreateObject("com.sun.star.ServiceManage…
'Create the first and most important service
Set oDesk = oSM.CreateInstance("com.sun.star.frame.D…
'Create a new doc
Set oDoc = oDesk.loadComponentFromURL("private:fact… "_blank", _
0, arg())
'Get the first sheet in the doc
Set oSheet = oDoc.getSheets().getByIndex(0)
With oSheet
For i = 1 To ListView1.ListItems.Count
.cells(i, 1) = ListView1.ListItems(i).Text
.cells(i, 2) = ListView1.ListItems(i).SubItems(1)
.cells(i, 3) = ListView1.ListItems(i).SubItems(2)
.cells(i, 4) = ListView1.ListItems(i).SubItems(3)
Next
End With
End Sub
目前我的所有按钮都在给我运行时错误'438'对象不支持此属性或方法 当我调试此行时突出显示:
.cells(i, 1) = ListView1.ListItems(i).Text
此代码是为Excel编写的,但我编辑了它,因此可以在OpenOffice Calc中显示。 有人可以帮忙吗? 感谢
答案 0 :(得分:0)
这正是它所说的 - 声明正在使用Ole Automation接口不支持的方法属性。第一个问题:你可以使用类型库(参见参考资料对话框 - 列表中是否有类似OpenOffice Calc的东西)?了解编译时可用的方法和属性要好得多 - 您可以使用Microsoft Excel执行相同的操作。然后,您可以将变量声明为特定类型,而不是“As Object”。
不知道OpenOffice,我查找了OpenOffice的文档,找到了下一个最好的东西,Star Office。尝试:http://www.openoffice.org/api/basic/man/tutorial/tutorial.pdf。有关电子表格的文档,请参见第64页第4.4节。对象模型看起来与Office不同,这可以解释您的问题。
看起来好像你需要使用Sheet.getCellByPosition()方法,而不是使用Cells()方法,例如
GetCell = oSheet.getCellByPosition (nColumn , nRow)