首页 > 解决方案 > 隐藏另一个时是否可以始终留在活动表中?

问题描述

我创建了一个动态工作簿,在其中我将数据放入和提取到更多包含来自其他来源的数据的工作表。我有一个“临时”表,其中代码更新了 som 数据,该表在宏运行之前被隐藏,为了放置和拉取数据,我让它可见,完成后我再次隐藏它。这(几乎)完美。

当我隐藏它时出现问题,然后我自动选择了我的最后一张工作表?我的代码完全没有任何 .select 或 .active (仍在学习),因为重要的是代码始终返回到运行代码的工作表,因为它每天都会更改名称。

我似乎找不到任何可以解决我的问题的方法,希望有人可以提供帮助:

我尝试了以下方法,您可以在以下代码中看到:

Sheets("Temp").Cells.ClearContents
Sheets("Temp").Visible = False

'Cleans filters
ActiveSheet.ShowAllData
Application.Goto Range("A4")

Application.ScreenUpdating = True

我想始终留在我的活动表中(例如:(“16”)这是实际日期,每天都会有一张表等。(“17”),(“18”)等等。)

标签: excelvba

解决方案


您可以使用With立即重新激活工作表,如下所示:

With ActiveSheet
    OtherSheet.Visible = xlSheetVisible
    .Activate 'Immediately reactivate the ActiveSheet
End With

(您可能想要切换Application.ScreenUpdating,以便您看不到另一张纸的闪烁)

但是,为什么需要显示工作表才能从中复制数据?如果您没有使用Select(您说您已经对其进行了排序),那么您应该能够使用隐藏的工作表来做大多数事情,例如HiddenSheet.Range("A1:B3").Copy

(另一方面,“非常隐藏”的工作表有一些限制 - 例如,您不能删除“非常隐藏”的工作表。)


推荐阅读