VBA工作表选择依赖于单元格值

时间:2014-01-06 18:06:28

标签: excel-vba worksheet vba excel

我对VBA很新,所以请原谅我这是一个简单的问题!我创建了一个模板报告(标题为“Client_Name”),我想为每个客户端填充 - 实质上所有这些涉及在数据透视表的报告过滤器中选择客户端并将数据透视表的数据值复制到模板。为了自动执行此操作,我创建了以下代码来复制模板并将其重命名为数据透视表中当前选择的客户端:

Sheet_Name_To_Create = Sheets("Pivot").Range("B1").Value
Sheets("Client_Name").Select
Sheets("Client_Name").Copy After:=Sheets(Sheets.Count)
Sheets(ActiveSheet.Name).Name = Sheet_Name_To_Create

我的下一步是返回数据透视表(“Pivot”工作表)并将数据复制到新创建的客户端工作表。但是,工作表的名称显然会因每个客户而有所不同。有没有办法引用VBA代码来选择其名称与当前在数据透视表的报表过滤器中显示的客户端相同的工作表?

1 个答案:

答案 0 :(得分:0)

Sheets(ActiveSheet.Name)ActiveSheet是一种不方便的方式。

复制后只需在变量中捕获ActiveSheet

Dim CopiedSheet as Worksheet
Set CopiedSheet = ActiveSheet

当您拥有工作表时,您不需要工作表的名称。

推荐阅读:How to avoid using Select in Excel VBA macros