我创建了一个动态工作簿,在其中将数据放入并拉出包含其他来源数据的更多工作表。我有一个“临时”工作表,其中代码更新了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”),依此类推。)
答案 0 :(得分:2)
您可以使用With
立即重新激活工作表,如下所示:
With ActiveSheet
OtherSheet.Visible = xlSheetVisible
.Activate 'Immediately reactivate the ActiveSheet
End With
(您可能想要切换Application.ScreenUpdating
,以免看到其他工作表的闪烁)
但是,为什么需要显示工作表才能从中复制数据?如果您是not using Select
(您说已经对它进行过排序),那么您应该能够使用隐藏表来完成大多数工作,例如HiddenSheet.Range("A1:B3").Copy
(另一方面,“非常隐藏”工作表有两个限制-例如,您不能删除“非常隐藏”工作表。)