我刚开始一份新工作,该工作严重依赖 excel,没有其他自动化工具。我正在尝试编写一个 VBA 脚本来循环遍历每个切片器项目并保存为 xls,文件名等于 YYYY-MM 和当前选择的切片器项目。一旦完成,继续浏览切片器项目列表,直到所有 300 个 Xls 文件都生成了它们的唯一文件名。目前,我正在为 300 个分支机构手动执行此操作以生成月末报告,这需要几天时间才能完成,并使我的大脑处于植物状态。我是 VBA 新手,并试图尽快学习,因此非常感谢任何帮助,直到我更高级一点。凯尔
Sub SlicerItemsLoop()
Dim slItem As SlicerItem, slDummy As SlicerItem
Dim slBox As SlicerCache
Set slBox = ActiveWorkbook.SlicerCaches("Slicer_Division_Code")
'loop through each slicer item
For Each slItem In slBox.SlicerItems
If slItem.HasData Then
'show all items to start
slBox.ClearManualFilter
'test each item against itself
For Each slDummy In slBox.SlicerItems
'if the item equals the item in the first loop, then select it
'otherwise don't show it (thus showing 1 at a time between the nested loops)
If slItem.Name = slDummy.Name Then slDummy.Selected = True Else: slDummy.Selected = False
Range("b1") = sI.Name
'Save to its own file by slicer name
'ActiveWorkbook.SaveAs Filename:= _
"C:\Users\User\Desktop\Margin Files\YYYY-MM Month End - &Range("b1").Text &".xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Next slDummy
Else 'do nothing
End If
Next slItem
End Sub