防止excel激活新对象(表格,图表,工作簿)

时间:2014-05-13 15:55:44

标签: excel excel-vba charts vba

好的,我有一个excel宏来处理大量数据并制作大量图表。我继承了最近退休的人的代码,而代码功能效率非常低,所以我重写它。我试图解决的一件事是他激活/选择了一切。我更喜欢使用引用,从不选择/激活任何东西。

但是我遇到了一个问题,当我创建一个新的工作簿或图表时,它会从原始工作簿中窃取焦点。这很烦人,因为我通常不会在我的主工作簿的参考文献中添加工作簿对象。

例如,当我使用这些行时,新图表/工作簿变为活动

Set wb = Workbooks.AddSet wC = wb.Charts.Add

然后我使用Workbooks(FileName).Activate重新激活原始工作簿

我觉得每次都必须这样做很烦人,并且想知道是否有办法防止新对象变为活动状态。

编辑:我刚刚意识到其他操作会导致图表窃取焦点,例如使用此命令移动图表wC.Move After:=wb.Worksheets(wb.Worksheets.Count)

1 个答案:

答案 0 :(得分:1)

如果您在新工作表之后声明旧工作表,我相信这可以完成您想要的工作。例如,

Dim newWst As Worksheet
Dim oldWsk As Worksheet

Set newWst = Worksheets.Add
Set oldWst = Worksheets("Sheet1")

Cells(1, 1) = "Test"

为我工作。它在旧工作表中添加了“测试”。