2017-01-11 3 views
-1

Kann jemand sehen, warum das bei mir nicht funktioniert?Warum funktioniert dieser einfache VBA-Code nicht?

Meine Zelle H6 enthält eine 12-stellige Nummer, also die Verwendung von Long. Irgendwelche Gedanken darüber, wie dieser Code anzupassen, um für sie zu arbeiten:

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 
+5

Was soll dieser Code tun? Was macht es jetzt? Erhalten Sie eine Fehlermeldung? Hast du die Tour gemacht (http://stackoverflow.com/tour)? – steenbergh

+1

Versuchen Sie besser zu beschreiben, was in Ihrem Code passiert, was Sie versuchen zu erreichen und ob Sie einen Fehler bei welcher Zeile erhalten. Der Beitrag im aktuellen Zustand kann uns nicht viel sagen und es ist fast unmöglich, Ihnen zu helfen. –

+0

Entschuldigung. Ich möchte in der Zelle H6 eine 12-stellige Zahl eingeben können, damit der Filter in der Pivot-Tabelle zu dieser Nummer geändert wird. Ich bekomme ein wenig andere Fehler, aber die häufigsten sind: Laufzeitfehler 6 Überlauf. –

Antwort

0

Long ist nur 32 Bits, so dass Sie nur 9 Dezimalstellen speichern kann. Verwenden Sie Double oder (nur wenn Sie eine 64bit-Version haben) LongLong.

+0

Hmm, wenn ich Double verwende, bekomme ich: Benutzerdefinierter Typ nicht definiert. Und wenn ich LongLong verwende, bekomme ich: Die PivotTabels-Eigenschaft der Arbeitsblattklasse konnte nicht abgerufen werden. Aber wenn überprüft und es sollte richtig sein. –

Verwandte Themen