为什么这个简单的VBA代码不起作用

时间:2017-01-11 07:52:48

标签: excel vba excel-vba

任何人都可以理解为什么这对我不起作用?

我的手机H6包含一个12位数字,因此使用Long。 有关如何调整此代码以使其工作的任何想法:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'This line stops the worksheet updating on every change, it only updates when cell'H6 or H7 is touched  
If Intersect(Target, Range("H6:H7")) Is Nothing Then Exit Sub

'Set the Variables to be used  
Dim pt As PivotTable  
Dim Field As PivotField  
Dim NewCat As Long  

'Here you amend to suit your data  
Set pt = Worksheets("Data1").PivotTables("PivotTable10")    
Set Field = pt.PivotFields("[Produkter].[EAN].[EanID]")  

NewCat = Worksheets("Data1").Range("H6").Value    

'This updates and refreshes the PIVOT table

With ActiveSheet.PivotTables("PivotTabel10").PivotFields("[Produkter].[EAN].[EanID]")  
    .ClearAllFilters
    .PivotFilters.Add Type:=xlCaptionEquals, Value1:=ActiveSheet.Range("H6").Value
End With

1 个答案:

答案 0 :(得分:0)

长只有32位,因此您只能存储9位十进制数字。使用Double或(仅当您拥有64位版本时)LongLong。