excel - 如何在 libre office basic 中使用模块?

标签 excel vba libreoffice worksheet-function basic

我习惯了 VBA,但我应该调试一些 libre office 基本代码,所以我尝试在代码隐藏中编写一个基本模块来处理我的工作表。
问题是,每当我尝试运行模块时,它似乎不知道起点在哪里等等,当我在 excel vba 中启动这段代码时,它运行起来很容易。也许有人知道如何处理模块在自由办公室以及为什么有一个主要方法..

REM  *****  BASIC  *****

Sub Main
    Test()
End Sub


Sub Test    
    Dim MyStringVariable As String
    MyStringVariable = "Wow!"
    Worksheets(1).Range("A1").Value = MyStringVariable
End Sub

最佳答案

这里的模块不承载任何功能负载——这只是为了方便将项目的过程和功能划分为逻辑相关的代码组。
您的代码无法工作,因为此 Basic 不知道工作表,它使用 ThisComponent.GetSheets() 方法获取当前电子表格的所有工作表。这里的集合元素从 0 开始编号,而不是从 1 开始编号,就像您在 VBA 中习惯的那样(这也适用于书籍的工作表,以及行数和列数):

REM  *****  BASIC  *****

Sub Main
' This is just "template" - you can leave it empty, or remove it, or fill with code '
End Sub

Sub Test    
    Dim MyStringVariable As String
    MyStringVariable = "Wow!"
    ThisComponent.GetSheets().getByIndex(0).getCellRangeByName("A1").setString(MyStringVariable)
' Better write this as '
Dim oSheets As Variant
Dim oSheet As Variant
Dim oCell As Variant
    oSheets = ThisComponent.getSheets()
    oSheet = oSheets.getByIndex(0)
    oCell = oSheet.getCellByPosition(0, 0)
    oCell.setString(MyStringVariable)
End Sub

关于excel - 如何在 libre office basic 中使用模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66783895/

相关文章:

r - 计算 EXCEL 2010 或 R 中一列中的唯一值,有 100 万行

python - 根据多列条件返回值

class - VBA 使用一个类作为另一个类的属性

vba - 无法以表格格式获取数据

php - 通过 PHP 编码执行 Linux-CentOS 命令行

vba - 如何从函数返回字典?

excel - 列出 Excel 中的工作表名称,同时跳过不需要的工作表

如果条件失败,VBA msgbox 将是(单元格)地址的结果

formula - 如何更改 libreoffice calc 公式的语言?

java - 无法理解如何调用非静态方法