02. januar 2014 - 13:52Der er
3 kommentarer og 1 løsning
VBA: hvis dataserie eksisterer i pivotgraf
Hej Eksperter
Jeg har forgæves forsøgt at afsøge www for en løsning på dette, men uden held.
Jeg kører excel 2010 engelsk version.
Jeg har en simpelt VBA kode som i en pivotgraf formaterer en dataserie der hedder "Forecast", så den altid har den samme farve:
ActiveChart.SeriesCollection("Forecast").Select With Selection.Format.Fill .Visible = msoTrue .ForeColor.ObjectThemeColor = msoThemeColorAccent3 .ForeColor.TintAndShade = 0 .ForeColor.Brightness = -0.25 .Transparency = 0 .Solid End With
Men da jeg har nogle situationer hvor jeg filtrerer min pivotgraf så der ikke findes en dataserie der hedder "Forecast", så får jeg en fejl når jeg afspiller koden - selfølgelig fordi at den ikke kan "ActiveChart.SeriesCollection("Forecast").Select ".
Hvordan tilføjer jeg i koden, at ovenstående kun skal ske hvis "ActiveChart.SeriesCollection("Forecast")" eksisterer i grafen?
On error resume next ActiveChart.SeriesCollection("Forecast").Select With Selection.Format.Fill .Visible = msoTrue .ForeColor.ObjectThemeColor = msoThemeColorAccent3 .ForeColor.TintAndShade = 0 .ForeColor.Brightness = -0.25 .Transparency = 0 .Solid End With On error goto 0
Hvad betyder "On error goto O" ? Vil man kunne bruge din kode flere gange i en sub? Hvis man nu fx også har en serie der hedder "Budget" og en der hedder "Commitment", som man ønsker at formaterer (forskelligt), i samme sub som den du lige har lavet til "Forecast".
On error goto 0 nulstiller on error resume next, så din kode efterfølgende vil fejle "rigtigt", hvis noget skulle gå galt.
Og ja, du kan godt bruge On error resume next andre steder. Du skal bare altid huske at nulstille efter at have brugt resume next
OG du skal bruge on error resume next med varsomhed. Den springer "bare"linjer, der fejler over - det er sjældent, at man ønsker det helt generelt og slet ikke når man arbejder med koden, da man så ikke opdager, at der er gået noget galt.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.