Libreoffice 在Calc宏中使用由高亮显示的单元格而不是绝对单元格引用确定的范围

Libreoffice 在Calc宏中使用由高亮显示的单元格而不是绝对单元格引用确定的范围,libreoffice,libreoffice-calc,libreoffice-basic,Libreoffice,Libreoffice Calc,Libreoffice Basic,简单请求:我有多个数据表的计算表,需要按照我定义的值进行排序(这个UserDefIndex已经设置好了)? 我希望找到一种方法来编写宏,在我突出显示的单元格上执行这种排序,而不是绝对单元格地址 我已经浏览了其中的每一个,但是,命名法太迟钝了,我很难掌握任何代码 亚类统计 雷姆---------------------------------------------------------------------- rem定义变量 将文档变暗为对象 dim dispatcher作为对象 雷

简单请求:我有多个数据表的计算表,需要按照我定义的值进行排序(这个UserDefIndex已经设置好了)? 我希望找到一种方法来编写宏,在我突出显示的单元格上执行这种排序,而不是绝对单元格地址

我已经浏览了其中的每一个,但是,命名法太迟钝了,我很难掌握任何代码

  • 亚类统计 雷姆---------------------------------------------------------------------- rem定义变量 将文档变暗为对象 dim dispatcher作为对象

    雷姆---------------------------------------------------------------------- rem可以访问该文档 文档=ThisComponent.CurrentController.Frame dispatcher=createUnoService(“com.sun.star.frame.DispatchHelper”)

    雷姆---------------------------------------------------------------------- 将args1(0)调整为新的com.sun.star.beans.PropertyValue args1(0)。Name=“ToPoint” args1(0).Value=“$A$3:$D$18”

    dispatcher.executeDispatch(文档“.uno:GoToCell”,”,0,args1())


如何定义高亮显示的单元格区域,而不是“$A$3:$D$18”,因为范围的大小会有所不同?

您可以手动选择范围,然后获取选择范围

Doc = ThisComponent
Sheet = Doc.Sheets(0)
rng = Doc.CurrentSelection 

标记为已回答,因为我认为它有效。但是,我仍然无法理解如何实现这一点。我的代码回答了您的问题,但我不知道您下一步要做什么。您必须手动选择范围,然后运行macroYes,谢谢您,Patel。我的问题是将您的解决方案集成到我的宏中。这是一个理解用法的问题——什么去了哪里。然而,我做了更多的研究,发现键盘快捷键“ctrl”+“Q”选择了它周围的数据块,并设置了我自己的热键来完成我的任务。