gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 22:18:10 25 4
gpt4 key购买 nike

我习惯了 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com