excel - 在通过切片器更改数据透视表之前运行代码
问题描述
我什至不确定这是否可能。
所以我有以下内容Worksheet_Change
,Worksheet Calculate
每次都会格式化我的工作表(如果需要,隐藏行和格式化日期)我在我创建的切片器中选择一个数据透视表过滤器项目。现在我希望添加的另一个功能是在数据透视表区域旁边和之外的相邻列中放置一个“评论”列。这些“评论”将与枢轴数据一起作为值复制并粘贴到另一张工作表中。同样,数据透视表也只会被复制和粘贴为值。
通常会发生的情况是,当在切片器中选择过滤器项目时,数据透视表区域的列数会发生变化,因为值字段是动态的。所以它可能是一个过滤器项目上的一列,而另一个是八列。这意味着我不能在右侧数据透视表的最后一列旁边放置“评论”列,因为它可能最终被新的过滤报告覆盖。所以是的,在覆盖发生之前,我希望先将评论列复制到另一个工作表。
任何帮助将不胜感激。提前致谢!
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("b1:p7")) Is Nothing Then
'Unhide all rows first
Range("A4").Select
ActiveCell.Offset(0, 0).Range("A1:A1000").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Hidden = False
'Hide rows outside Pivot Table report area
Range("A7").Select
Selection.End(xlDown).Select
ActiveCell.Offset(3, 0).Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Hidden = True
Range("A800").Select 'above project no.
Selection.End(xlDown).Select
ActiveCell.Offset(3, 0).Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Hidden = True
'format date
If Range("G7") = "End dates Due" Then
Range("G7").Select
ActiveCell.Range("A1:A792").Select
Selection.NumberFormat = "m/d/yyyy"
Else
Range("G7").Select
ActiveCell.Range("A1:A792").Select
Selection.NumberFormat = "#,##0.00"
End If
End If
End Sub
Private Sub Worksheet_Calculate()
If Me.Range("A802").Value = "" Then 'below project no.
Me.Range("A796:A801").EntireRow.Hidden = True 'from proj manager to project no.
Else
Me.Range("A796:A801").EntireRow.Hidden = False
End If
If Me.Range("A823").Value = "" Then 'below project no.
Me.Range("A817:A822").EntireRow.Hidden = True
Else
Me.Range("A817:A822").EntireRow.Hidden = False
End If
If Me.Range("A802").Value = "" And _
Me.Range("A823").Value = "" Then
Me.Range("A794:A822").EntireRow.Hidden = True 'from report no. to 2nd proj. no.
End If
End Sub
解决方案
推荐阅读
- android - 白色状态栏下的 Android 内容
- javascript - 我无法使用 Laravel 和 VueJs 更新数据
- android - JsonArray 作为空字符串解析问题与改造
- javascript - onclick 事件后显示文本
- java - Spring JPA 合并 - ObjectOptimisticLockingFailureException
- ios - 如何更改 iOS 系统警报的色调?
- jquery - 如何构建一个 jquery 选择器,停止在匹配时更深入地遍历?
- highcharts - 如何动态更改点之间的线条颜色?
- typescript - 使用 require('./lib').default 键入第三方库
- botframework - 在 WestUS 地区创建的 Luis 服务可以被亚洲和澳大利亚的用户查询吗?