Libreoffice 升级(7.5 到 7.6)破坏了我的宏

Libreoffice upgrade (7.5 to 7.6) broke my macro

提问人:Micklos 提问时间:9/11/2023 最后编辑:Micklos 更新时间:9/11/2023 访问量:44

问:

该宏在 7.5 (7.5.3??) 下运行良好,但非常令人沮丧的是,在 Libreoffice 7.6.0.3 升级后,它现在已经死了,就像我的工作表中此代码的许多(!)实例/轻微变体一样。有人可以帮我理解为什么旧代码不再有效并给出如何修复它的建议吗? (理想情况下,宏应该在 7.0 版以上适用于不同的计算机。

Sub Col_D_for_Y
sheet = ThisComponent.CurrentController.ActiveSheet
    source = sheet.getCellRangeByName("D14:D32")
    target = sheet.getCellRangeByName("L14")
    sheet.copyRange(target.CellAddress, source.RangeAddress)
End Sub

代码将突出显示 当弹出错误消息框时。source = sheet.getCellRangeByName("D14:D32")

enter image description here

LibreOffice Basic Calc

评论

3赞 JohnSUN 9/11/2023
假设 Source 这个词已经成为一个保留词,现在对 BASIC 的意思与你想象的不同。将窗体的变量说明添加到过程的开头,然后重试Dim Sheet, Source, Target
1赞 Micklos 9/11/2023
嗨,JohnSUN。我做了一个全局查找和替换“source”到“MySource”(86个条目!),现在一切正常。实际上,我在升级之前阅读了发行说明,我没有注意到任何关于源成为保留词的提及,所以我可能只有在咬牙切齿之后才会发现这个“修复”,所以我真的很感谢 - 再次 - 你的帮助。我没有为了节省时间而调暗我的变量,我侥幸逃脱了。
0赞 Jim K 9/11/2023
@JohnSUN:你有提到这一点的链接吗?我搜索了一下,但找不到任何关于它的信息。
0赞 JohnSUN 9/11/2023
@JimK 不,我没有链接 - 当我看到错误消息“没有 RangeAddress 属性”时,我只是在猜测

答: 暂无答案