VBA Excel Graphiques -> gamme sélectionnez à l'aide de “Cellules” dans un délai de Graphiques
Je suis en train de modifier un code VBA (Excel) qui rend Graphique graphiques, et de le rendre plus souple.
Je sais que les pièces suivantes de code est fondamentalement la même chose:
Range(Cells(12, 2), Cells(15, 2)).Select
est plus ou moins identique à:
Range("B12:B15").Select
Mon objectif était d'avoir un Graphique qui représente le flexible de compteur de lignes.
J'ai donc modifié le code existant:
ActiveChart.SetSourceData Source:=Sheets("Log-Data").Range("B12:B200"), PlotBy:=xlColumns
à
Dim LastRow As Integer
LastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
ActiveChart.SetSourceData Source:=Sheets("Log-Data").Range(Cells(12, 2), Cells(LastRow, 2)), PlotBy:=xlColumns
Maintenant, chaque fois que j'exécute le code, je reçois:
Erreur d'exécution '1004': définie par l'Application ou par l'objet défini erreur
La LastRow
variable n'est pas le problème: j'ai le même résultat si je le remplace par 200.
Ce que je fais mal?
Acclamations
Peter
- Whenver vous utilisez
sheetname.Range(Cells(a,b), Cells(a2,b2))
vous devriez toujours se qualifier chaqueCells()
avec la feuille de référence: dans le cas contraire,Cells()
va toujours se référer à la ActiveSheet, qui peut ne pas être ce que vous souhaitiez.
Vous devez vous connecter pour publier un commentaire.
LastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
et
LastRow = ActiveSheet.UsedRange.Rows.Count
sont les mêmes.
Aussi loin que l'erreur va, il semble que si vous n'avez pas d'actif objet du graphique lorsque le code est exécuté. Donc
ActiveChart.
retourne un objet d'erreur.Essayez ceci:
J'ai essayé le suivant et il fonctionne (l'ajout d'une période avant que les Cellules de mot)
Essayer ci-dessous et laissez-moi savoir