下面的宏/代码在新的工作表中创建数据透视表,该标签的命名基于其过滤条件。例如,我有3个品牌,它将为3个品牌创建标签,并根据品牌(品牌1,品牌2和品牌3)命名标签。我正在尝试更新编码,以便通过从工作表中的特定单元格引用日期来在名称中包含日期,因为我每个月都必须更新日期。因此,如果我在A1单元格中有6.15.20,我想告诉宏引用A1(带有日期)来命名标签“ Brand 1 6.15.20”,现在它仅将标签命名为Brand 1。有办法吗?
假设需要在代码的这一区域进行更新
对于pf.PivotItems中的每个pi
strPI = Replace(Left(pi.Name,31),“ /”,“”)
下面是我的整个编码。
感谢任何帮助!
On Error GoTo errHandler
Application.DisplayAlerts = False
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim strPF As String
Dim strPI As String
Set ws = Sheets("Invoice PVTTBL Template")
Set pt = ws.PivotTables(1)
Set pf = pt.PageFields(1)
strPF = pf.Name
For Each pi In pf.PivotItems
strPI = Replace(Left(pi.Name, 31), "/", " ")
On Error Resume Next
Sheets(strPI).Delete
On Error GoTo 0
ws.Copy After:=Sheets(Sheets.Count)
With ActiveSheet
.Name = strPI
With .PivotTables(1).PivotFields(strPF)
.PivotItems(pi.Name).Visible = True
.CurrentPage = pi.Name
End With
End With
Next pi
ws.Activate
MsgBox "Invoices Created"
exitHandler:
Application.DisplayAlerts = True
Exit Sub
errHandler:
MsgBox "Could not create sheets"
Resume exitHandler
End Sub
想通了:希望这对以后的人有所帮助,以便将单元格引用到我在下面使用的现有公式。这是基于我上面的公式。
strPI = Replace(左(pi.Name&“”&ws.Range(“ O1”),31),“ /”,“”)
所以现在代替选项卡上的名称为“ Brand 1”,它会显示一个日期,这是由于我引用了具有所需日期的单元格。标签上的新名称如下所示:“品牌1 6.15.20”