添加新工作表后如何显示?

时间:2019-11-29 15:18:40

标签: excel vba

我在工作表(行项目摘要)上有一个“宏”按钮,该按钮可创建成本表的副本作为新工作表。宏完成后,活动工作表为行项目摘要,但我希望它是创建的工作表。这是按钮的宏:

Sub NewSheet()

Call Sheet7.NewLine

Worksheets("Costing Sheet").Copy After:=Worksheets("Costing Sheet")
ActiveSheet.Range("B6:F68").Value = ActiveSheet.Range("B6:F68").Value

End Sub

我一直在考虑使用“应用程序或激活”作为执行此操作的方法,但是对于VBA来说还很陌生,我不确定如何或是否有更好的方法来执行此操作。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

尝试

Worksheets(Worksheets("Costing Sheet").Index+1).Activate

行后

Worksheets("Costing Sheet").Copy After:=Worksheets("Costing Sheet")

工作表可以通过其名称,代号或索引来引用。对于您而言,第Worksheets("Costing Sheet").Copy After:=Worksheets("Costing Sheet")行是在其后紧接着复制工作表Costing Sheet

因此在我的代码中,Worksheets("Costing Sheet").Index部分将返回该工作表的索引,我们将1加起来就可以得到下一个工作表。

更新:正如我在评论中所说,有时您不需要工作表即可成为执行某些操作的活动表。在您的情况下,因为您想将公式转换为值,所以只需一行即可完成。您的最终代码可以是:

Sub NewSheet()

Call Sheet7.NewLine

Worksheets("Costing Sheet").Copy After:=Worksheets("Costing Sheet")
With Worksheets(Worksheets("Costing Sheet").Index+1)
    .Range("B6:F68").Value = .Range("B6:F68").Value
End With


End Sub