在Excel中创建临时工作表以执行计算

时间:2015-02-13 10:32:11

标签: excel vba

首先,我已经搜索并阅读了类似的主题,我已经尝试了所提出的解决方案并解决了其他人的问题,但它在我的案例中没有用。

我基本上想要创建临时Excel工作表,我想在后端进行所有计算,并在前端工作表中仅显示给用户的输出。

任何人都可以告诉我如何创建临时工作表并在数字复制到前端工作表(即用户将看到的工作表)后立即删除它们。

我的主要动机是不让用户看到后端发生的各种计算。

3 个答案:

答案 0 :(得分:2)

我建议隐藏一张表来执行计算,而不是创建临时表。

假设您有输入表,用户输入他的数据。另一张纸是隐藏的。在那里进行计算。

如何隐藏工作表?

转到VBA代码编辑器窗口(ALT + F11)。选择要隐藏的工作表。在“属性”窗口中,选择选项:SheetHidden。现在,您可以使用宏将隐藏工作表中的数据复制到目标工作表中。

ThisWorkbook.Worksheets("HiddenSheetName").Range("A1:C56").Copy
ThisWorkbook.Worksheets("VisibleSheetName").Range("A66:C106").PasteSecial xlValues

注意:我直接写了上面的代码。未经测试!

答案 1 :(得分:2)

您可以使用在VBA中创建临时表 Sheets.Add.Name = "Temp Sheet"或其他任何名称 在完成计算后,将其删除 Sheets("Temp Sheet").Delete 请注意,如果您的提醒已启用,则系统会提示用户同意删除该工作表,您可以在删除之前使用Application.DisplayAlerts = False并在<{p>}之后使用Application.DisplayAlerts = True来避免这种情况

答案 2 :(得分:-1)

创建临时表的示例代码:

Sub Sample()

Dim TempSheet As Worksheet

Application.ScreenUpdating = False
On Error Goto ErrorHandler:

Set TempSheet = ThisWorkbook.Worksheets.Add
TempSheet.Visible = xlSheetHidden

'Do the calculations

Application.DisplayAlerts = False
TempSheet.Delete
Application.DisplayAlerts = True

ErrorHandler:
Application.ScreenUpdating = True

End Sub