Selectarea hărților fără a face referire la numărul hărții (Programare, Excel, Vba, Diagrame)

utilizator2640906 a intrebat.

Vreau să selectez un grafic aleatoriu pe o foaie în Excel folosind VBA fără a ști numărul graficului, deoarece graficul generat se schimbă întotdeauna în număr. Mă poate ajuta cineva vă rog? Este posibilă selectarea unui grafic fără a face referire la numărul graficului? Vreau să schimb numele graficului din graficul activ.

1   ActiveSheet.ChartObjects("Chart 409").Activate
2   ActiveSheet.Shapes("Chart 409").Name = "Chart 1"
3   ActiveSheet.ChartObjects("Chart 1").Activate

Comentarii

  • În loc să apelați graficul după nume, trebuie să îl apelați după index: ActiveSheet.ChartObjects(1).Activate for 1st one in Activesheet. Schimbarea lui 1 cu un număr aleatoriu vă va oferi o referință aleatorie. –  > Por Kazimierz Jawor.
  • Dacă doriți un grafic activ, utilizați Selection.Name="..." –  > Por LS_ᴅᴅᴇᴇᴠ.
  • Mulțumim KazJaw și LS_dev. Motivul pentru care am nevoie de acest lucru este că graficul meu se actualizează mereu , numele său se schimbă și, prin urmare, nu pot avea un nume de referință fix. Cu toate acestea, ActiveSheet.ChartObjects(1).Activate funcționează foarte bine și selectează aleatoriu. Vă mulțumesc foarte mult! Ce ușurare! –  > Por user2640906.
  • @KazJaw: Scrieți un răspuns… –  > Por Werner.
1 răspunsuri
PankajKushwaha

Pentru a selecta toate graficele sau pe cel aleatoriu, Puteți utiliza Indexul grafic.

Sub getcharts()

Dim ws As Worksheet
Dim ch As ChartObject
Set ws = ActiveSheet

cnt = ws.ChartObjects.Count
random_num = Application.WorksheetFunction.RandBetween(1, cnt)

ws.ChartObjects(random_num).Name = "NAM"  'The Random chart
For Each ch In ws.ChartObjects
    ch.Name = "Put the name of Chart here "
    'Or Do anything with you all the charts here
Next


End Sub