Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA:复制工作表,但不显示一秒钟_Vba_Excel - Fatal编程技术网

VBA:复制工作表,但不显示一秒钟

VBA:复制工作表,但不显示一秒钟,vba,excel,Vba,Excel,我在工作表“索引”上有一个宏。如果单击宏,我想创建一个新工作表,并从另一个工作表(称为“模板”)中复制一个零件 我有以下代码来完成这项工作: Set new_sheet = Sheets.Add(after:=Sheets(Sheets.Count)) Sheets("Template").Range("A1:Z100").Copy Destination:=Sheets(new_sheet.Name).Range("A1") ActiveWindow.DisplayGridlines = Fa

我在工作表“索引”上有一个宏。如果单击宏,我想创建一个新工作表,并从另一个工作表(称为“模板”)中复制一个零件

我有以下代码来完成这项工作:

Set new_sheet = Sheets.Add(after:=Sheets(Sheets.Count))
Sheets("Template").Range("A1:Z100").Copy
Destination:=Sheets(new_sheet.Name).Range("A1")
ActiveWindow.DisplayGridlines = False
Sheets("Index").Activate
然而,我不喜欢新的工作表在一瞬间被显示出来(我发现它有点令人不安,就像一条潜意识的信息)。我想留在“索引”表上。因此,

a) 是否有办法避免显示新创建的图纸

b) 如果a)的答案是否定的,有没有一种方法可以显示一个持续几秒钟的对话框,比如“详细阐述…”隐藏背景中发生的事情

Application.ScreenUpdating = False
在复制之前的某个地方

使用

Application.ScreenUpdating = False

在复制之前的某个地方

您可以将
屏幕更新
属性设置为
True
False
,以满足您的需要,并在Sub:

Application.ScreenUpdating = False
最后:

Application.ScreenUpdating = True

有关更多信息,请参见。

您可以在Sub开始时将
屏幕更新
属性设置为
True
False
,以满足您的需要:

Application.ScreenUpdating = False
最后:

Application.ScreenUpdating = True

有关更多信息,请参阅。

完全同意,您可以使用将ScreenUpdate属性设置为True或False,正如大家已经提到的那样。但是你需要小心。如果在ScreenUpdate设置为false时调试或应用程序出错,则会导致excel文件“冻结”——但不是完全冻结,只是冻结屏幕。如前所述,屏幕不会更新,直到您再次调用它为真


因此,我建议在开发过程中忽略这一点。每次程序冻结时,在代码中来回手动启用它可能会非常烦人。

完全同意,您可以使用设置ScreenUpdate属性为True或False,正如大家已经提到的那样。但是你需要小心。如果在ScreenUpdate设置为false时调试或应用程序出错,则会导致excel文件“冻结”——但不是完全冻结,只是冻结屏幕。如前所述,屏幕不会更新,直到您再次调用它为真


因此,我建议在开发过程中忽略这一点。每次程序冻结时,在代码中来回手动启用它可能会非常烦人。

Application.screenUpdate=False
就在您复制工作表之前。好的,那太完美了。你认为我应该删除这个问题吗?别客气,也别忘了把它打开。ScreenUpdate=True我只接受其中一个答案。现在我有另一个问题了。我更改了一个由vlookup调用的值,它显示了另一张图纸的一部分,时间仅为几分之一秒。
Application.screenUpdatement=False
,就在您复制图纸之前。好的,这很完美。你认为我应该删除这个问题吗?别客气,也别忘了把它打开。ScreenUpdate=True我只接受其中一个答案。现在我有另一个问题了。我改变了一个由vlookup调用的值,它显示了另一张纸的一部分,持续了几分之一秒。