如果有人知道我能做些什么来解决问题,我需要帮助以下奇迹。
以下将是我想要它的用户形式。
我要做的是选择这个将与枢轴表链接的test1,在其中选择它,也将在数据透视表上选择test1。然后,我需要将名称“test1”写入另一个工作表,称为Sheet2。我能够编写一个代码来执行此操作,但是当我尝试取消选择它时,会出现运行时错误。想知道我是否需要为其添加另一个代码,或者我的代码中已经存在错误。
我的代码:
Private Sub CheckBox2_Click()
If CheckBox2.Value = True Then
Sheets("Sheet1").Select
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Test1")
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable1").PivotFields("Test1").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
Sheets("Sheet2").Select
Range("A1").Select
ActiveCell.FormulaR1C1 = "Test1"
Sheets("Sheet1").Select
End If
If CheckBox2.Value = False Then
ActiveSheet.PivotTables("PivotTable1").PivotFields("Test1").Orientation = _
xlHidden
Sheets("Sheet2").Select
Range("A1").Select
ActiveCell.FormulaR1C1 = ""
End If
End Sub
答案 0 :(得分:2)
始终尽量避免。选择,因为它们是导致疼痛的主要原因:)试试这个
已经过测试
Private Sub CheckBox2_Click()
Dim ws As Worksheet
'~~> Sheet1 has the pivot
Set ws = Sheets("Sheet1")
If CheckBox2.Value = True Then
With ws
With .PivotTables("PivotTable1").PivotFields("Test1")
.Orientation = xlColumnField
.Position = 1
End With
.PivotTables("PivotTable1").PivotFields("Test1").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
Sheets("Sheet2").Range("A1").Value = "Test1"
End With
Else '<~~ If false
ws.PivotTables("PivotTable1").PivotFields("Test1").Orientation = xlHidden
Sheets("Sheet2").Range("A1").ClearContents
End If
End Sub
编辑 - 关注
是.. test2可以在A1或A2 ..但有时test1可以在A1附近..对不起附加问题 - user1204868 30秒前
将此行Sheets("Sheet2").Range("A1").ClearContents
更改为
With Sheets("Sheet2")
If .Range("A1").Value = "Test2" Then .Range("A1").ClearContents
If .Range("A2").Value = "Test2" Then .Range("A2").ClearContents
End With
HTH
西特