"Körningsfel 1004" när du gör ändringar i förklaringsposterna i ett diagram i Excel
Anteckning
Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.
Symptom
När du kör ett Microsoft Visual Basic for Applications-makro (VBA) som använder metoden Förklaringsposter för att göra ändringar i förklaringsposter i ett Microsoft Excel-diagram kan du få följande felmeddelande:
Körningsfel '1004': Program- eller objektdefinierat fel
Orsak
Detta inträffar när Excel innehåller fler förklaringsposter än vad det finns utrymme för att visa förklaringsposterna i Excel diagram. När detta inträffar Microsoft Excel kanske förklaringsposterna trunkerar.
Eftersom metoden Förklaringsposter i VBA-makrot använder det som visas för förklaringen (i det här fallet de trunkerade förklaringsposterna) uppstår felmeddelandet i avsnittet "Symptom" i den här artikeln när det finns fler poster än det finns utrymme för att visa förklaringsposterna i Excel-diagrammet.
Lösning
Microsoft tillhandahåller programmeringsexempel endast för illustration, utan garantier som vare sig uttrycks eller underförstådda, inklusive, men inte begränsat till, underförstådda garantier om säljbarhet och/eller lämplighet för ett visst ändamål. Den här artikeln förutsätter att du är bekant med det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supportpersonal kan förklara funktionaliteten i en viss procedur, men de ändrar inte de här exemplen för att ge ytterligare funktioner eller skapa procedurer som uppfyller dina specifika behov.
Mer information om vilka supportalternativ som är tillgängliga och om hur du kontaktar Microsoft finns på följande Microsoft-webbplats:
Du kan komma runt det här problemet genom att skapa ett makro som minskar teckenstorleken på Excel-diagramförklaringstexten innan VBA-makrot ändrar diagramförklaringen och sedan återställer teckenstorleken för diagramförklaringen så att den liknar följande makroexempel.
Anteckning
Du måste ha ett Excel i kalkylbladet för att det här makrot ska köras på rätt sätt.
Sub ResizeLegendEntries()
With Worksheets("Sheet1").ChartObjects(1).Activate
' Store the current font size
fntSZ = ActiveChart.Legend.Font.Size
'Temporarily change the font size.
ActiveChart.Legend.Font.Size = 2
'Place your LegendEntries macro code here to make
'the changes that you want to the chart legend.
' Restore the font size.
ActiveChart.Legend.Font.Size = fntSZ
End With
End Sub