gpt4 book ai didi

vba - _Change 移动数据透视图的事件过程

转载 作者:行者123 更新时间:2023-12-04 21:55:51 27 4
gpt4 key购买 nike

_Change sheet 的事件是什么?
我在 _Change 事件过程中有以下问题,而此代码确实适用于其他子例程。

这个宏是为移动数据透视图而写的。

Microsoft Excel 将关闭并遇到此错误:
Microsoft Excel 遇到问题,需要关闭。对此造成的不便,我们表示歉意。并将关闭。

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Sheets("sheet1").PivotTables("pvtReport").TableRange2.Cut
Cells(Sheets("sheet1").ListObjects("tblReport").Range.Rows.Count + 2, 13).Select
Sheets("sheet1").Paste
ActiveSheet.PivotTables("PvtReport").PivotSelect "", xlDataAndLabel, True
Selection.End(xlDown).Select
Cells(Selection.Row + 2, Selection.Column).Select

Sheets("sheet1").ChartObjects("InsuranceChart").Cut
Sheets("sheet1").Paste
End Sub

请注意,此代码在 Sheets("sheet1").ChartObjects("InsuranceChart").Cut 中遇到错误线。

最佳答案

我建议只保留 Worksheet_Change 中的基本内容。事件,并将其余的逻辑、对象和代码放在 Sub 中在常规模块中。

为了移动数据透视图,您可以使用 TopLeft ChartObject 的属性.

代码中的更多解释作为注释。

Worksheet_Change 代码(工作表模块内)

Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False
Application.EnableEvents = False

MovePivotTable Target.Parent ' call the reugular Sub and pass the Worksheet object

Application.ScreenUpdating = True
Application.EnableEvents = True

End Sub

子移动数据透视表(常规模块)
Option Explicit

Sub MovePivotTable(ws As Worksheet)

Dim PvtTbl As PivotTable
Dim TblReport As ListObject
Dim InsurChtObj As ChartObject

With ws
' set the Pivot Table object
Set PvtTbl = .PivotTables("pvtReport")

' set the Table object (ListObject)
Set TblReport = .ListObjects("tblReport")

' set the Pivot Table Chart object
Set InsurChtObj = .ChartObjects("InsuranceChart")

' move the Pivot Table at the end of the Table Object
PvtTbl.TableRange2.Cut Destination:=.Cells(TblReport.Range.Rows.Count + 2, 13)

' move the Pivot chart at the end of the Table
InsurChtObj.Top = PvtTbl.TableRange1.End(xlDown).Offset(2).Top ' go to the bottom of the Pivot-Table range + 2 more rows
InsurChtObj.Left = PvtTbl.TableRange1.Left
End With

End Sub

关于vba - _Change 移动数据透视图的事件过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45067788/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com