Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Excel ja VB

erkko [09.08.2006 09:48:51]

#

Ohjelman tarkoituksena olisi piirtää kuvaajia tulosten excelin tulosten perusteella. Mutta se ei toimi tällaisenaan.. Osaisiko joku auttaa??

Dim rivi As Integer
Dim sarake As Integer

Do While sarake < 30
rivi = rivi + 5
sarake = 1
sarake = sarake

    Sheets("Sheet1").Activate
    Sheets("Sheet1").Cells(rivi, sarake).Select
    Range(Selection, Selection.Offset(0, 10)).Select
    Selection.NumberFormat = "General"


    Charts.Add
    ActiveChart.ChartType = xlColumnClustered

'Ohjelma ei suostu suorittamaan seuraavaa käskyä! Mutta miksi ei?

   ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range(Selection, Selection.Offset(0, 10)), PlotBy:= _
        xlRows

    ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
    Loop

End Sub

BadSource [09.08.2006 10:42:09]

#

Kuvaajan dataa ei voi määrittää kahta kertaa. Eli käskyä ei suoriteta, kun kuvaaja luodaan kuvaajan luontia edeltävän alueen valinnan pohjalta. Mahdolliset tavat luodaa kuvaaja.

Private Sub TapaA()
    Dim rivi As Integer
    Dim sarake As Integer

    'Kuvaajien data sijaitsee soluissa A1-J10, eli 10*10 alalla
    sarake = 1 'sarake ei muutu minnekkään vaan on koko ajan A-sarake
    'kuvaajat luodaan rivin tiedoista (Offset(0, 9)), eli tarkastellaan loopissa rivin, ei sarakkeen, arvoa
    Do While rivi < 10
        rivi = rivi + 1

        Sheets("Sheet1").Activate
        Sheets("Sheet1").Cells(rivi, sarake).Select
        Range(Selection, Selection.Offset(0, 9)).Select

        Charts.Add 'luodaan kuvaaja edellä valitun alan pohjalta
        ActiveChart.ChartType = xlColumnClustered

        ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
    Loop

End Sub
Private Sub TapaB()
    Dim rivi As Integer
    Dim sarake As Integer

    sarake = 1
    Do While rivi < 10
        rivi = rivi + 1

        Charts.Add 'luodaan uusi tyhjä kuvaaja
        'Määritetään tyhjälle kuvaajalle data
        ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range(Sheets("Sheet1").Cells(rivi, sarake), _
          Sheets("Sheet1").Cells(rivi, sarake).Offset(0, 9)), PlotBy:=xlRows
        ActiveChart.ChartType = xlColumnClustered

        ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
    Loop

End Sub

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta