gpt4 book ai didi

excel - 在不激活工作表的情况下获取 Excel 中的选择范围

转载 作者:行者123 更新时间:2023-12-04 19:51:23 25 4
gpt4 key购买 nike

我有一个非常庞大和复杂的应用程序,主要基于 vba(+3500 行代码):它导入和分析我学校每位老师的愿望(也用 Excel 编写)。然后,管理员可以编辑任何设置/愿望,这样明年的教师资源规划就完成了。

效果很好。并且功能几乎像一个数据库。

我大量使用 Application.ScreenUpdatingApplication.EnableEvents 以获得不错的无闪烁感觉(视觉上看到床单的变化)但有时程序同时更新几张表会造成闪烁问题(程序结构接近完美,但并不完美)

是否有可能通过任何方式在不激活此工作表的情况下获取工作表中的选择范围?要理解这个想法:您在 Sheeet1(Sheet1 已激活)上并且想要获得 Sheet2 的(范围)选择。

我试过 Sheets("Sheet2").Selection.Address 或 Sheet2.Seledtion.Address,但它不起作用,因为 Selection 是一个应用程序对象。

有什么想法吗?

最佳答案

如果工作表不是事件表,则它不能有选择,也不能有事件单元格。无论打开了多少个工作簿或工作表或窗口,整个 Excel 应用程序实例只有一个选择。

如何作弊:在 ThisWorkbook 代码表中放入此代码。

Option Explicit

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Sh.Names("Sel").Delete
On Error GoTo 0
Sh.Names.Add Name:="Sel", RefersTo:="='" & Sh.Name & "'!" & Target.Address(1, 1), Visible:=True
End Sub

任何时候在工作簿中的任何工作表上进行任何新选择时,新选择将成为工作表级别定义的名称。在 Sheet1 处于事件状态的情况下,您可以引用 sheet2 上的“选择”,

worksheets("sheet2").range("Sel")
'on a worksheet as,
=SUM(Sheet2!Sel)

这些命名范围是在关闭工作簿并重新打开时存储的。

凭良心我不能将此视为“最佳实践”。

Time to read How to avoid using Select in Excel VBA.

关于excel - 在不激活工作表的情况下获取 Excel 中的选择范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49585539/

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