인터넷 검색 및 검색을 시도했지만 실제로는 얻을 수 없습니다. 내가하려고하는 모든 것은 활성 워크 시트의 슬라이서를 반복하고 슬라이서가 있으면 삭제합니다.VBA를 사용하여 통합 문서 슬라이서 이름을 반복합니다.
내가 지금 거기에 앉아있는 6 slicers있다. 이전에 내가 가지고 있었다
ActiveSheet.Shapes.Range(Array("Market Segment Name 2", "Line of Business 2" _
, "Customer Name", "Product Group Name", "Product Type Name", "Product Code") _
).Select
Selection.Delete
그러나 나는 이미 슬라이서를 삭제했다면 좋지 않았다.
지금 나는 그것이 작동합니다 것 같다 나에게Option Explicit
Dim sl As Slicer
Dim slName As String
Set wb = ActiveWorkbook
For Each sl In wb.SlicerCaches
If sl.Name = "Market Segment Name 2" Or _
sl.Name = "Line of Business 2" Or _
sl.Name = "Customer Name" Or _
sl.Name = "Product Group Name" Or _
sl.Name = "Product Type Name" Or _
sl.Name = "Product Name" Then
slName = sl.Name
ActiveSheet.Shapes.Range(slName).Delete
End If
Next sl
(는 "공공"라는 이름의 모듈에서 전역 변수로 설정되어 WB 주) 노력하고 있어요. SlicerItem 수준으로 내려 가면 작동하도록했습니다.하지만 Slicer 수준에서 액세스하는 방법을 알아낼 수는 없습니다 ...
모든 아이디어를 높이 평가할 수 있습니다. 고맙습니다.
이것이 실패하면 배열을 만들고 그런 식으로 삭제할 것이지만 여전히 슬라이서가 있는지 여부를 테스트하는 방법이 필요합니다.
'슬라이서 수준에서 액세스하는 방법을 알 수 없습니다 ... '나는 당신의 질문을받지 못했습니다. –
안녕하세요 Siddharth Rout. 이 구조와 논리가 올바를 바란다. 나는 이미지 (아래에 링크되어 있음)로갑니다. 워크 시트에서 슬라이서를 볼 때 '슬라이서 (slicer)'레벨이라고 가정하고 그 이름을 액세스 할 수 있으므로 삭제할 수 있는지 여부를 감지 할 수 있습니다. http://blogs.office.com/cfs-filesystemfile.ashx/__ key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-00-44-metablogapi/0636.image_5F00_2ADE6206.png –
그래서 모든 슬라이서의 이름을 원하거나 슬라이서를 확인 하시겠습니까? 존재 하는가? –