رسم نمودار از طریق vba

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • M_N_Bokaei

    • 2012/06/10
    • 11
    • 67.00

    [حل شده] رسم نمودار از طریق vba

    سلام
    می خوام برای 170 سطر و سه ستون داده موجود در کاربرگ P، نمودار Scatter رسم کنم بطوریکه داده های ستون دوم (که از 1 الی 4 است)(ستون Q) به عنوان میله X داده های ستون سوم (که از 1 الی5 است)(ستون R) به عنوان میله Y و داده های ستون اول (ستون P)به عنوان نقاط درون نمودار قرار گیرند. در حقیقت نیاز است این 170 سطر داده درون نمودار به صورت نقطه ای نمایش داده شود.
    یعنی
    کد PHP:
    ActiveChart.FullSeriesCollection(1).Name داده های ستون اول
    ActiveChart
    .FullSeriesCollection(1).XValues =داده های ستون دوم 
    ActiveChart
    .FullSeriesCollection(1).Values داده های ستون سوم 
    برای این منظور از حلقه for به صورت ذیل استفاده کردم
    اما راهی پیدا نکردم که شمارنده متغیر(i) را در دبل کتیشن ها وارد کنم.
    لطفا راهنمایی کنید چگونه این کار را انجام دهم.
    با تشکر
    کد PHP:
    Sub Macro()
    '
    Sheets.Add After:=ActiveSheet
    ActiveSheet.Shapes.AddChart2(240, xlXYScatter).Select
    For i = 1 To 170
       ActiveChart.SeriesCollection.NewSeries
       ActiveChart.FullSeriesCollection(1).Name = "P!$P" & i"
       ActiveChart.FullSeriesCollection(1).XValues = "P!$Q" & i"
       ActiveChart.FullSeriesCollection(1).Values = "=P!$R" & i"
    Next
    End Sub 
    تاپیک اشتباها حل شد خورده...
  • iranweld

    • 2015/03/29
    • 3341

    #2
    با سلام
    اگر مشکل فقط i میباشد بصورت ذیل وارد کنید
    کد PHP:
    Sub Macro()

    Sheets.Add After:=ActiveSheet
    ActiveSheet
    .Shapes.AddChart2(240xlXYScatter).Select
    For 1 To 170
       ActiveChart
    .SeriesCollection.NewSeries
       ActiveChart
    .FullSeriesCollection(1).Name "P!$Pi
       ActiveChart
    .FullSeriesCollection(1).XValues "P!$Qi
       ActiveChart
    .FullSeriesCollection(1).Values "=P!$Ri
    Next
    End Sub 
    به روش دیگر

    کد PHP:
    Sub Macro()

    Sheets.Add After:=ActiveSheet
    ActiveSheet
    .Shapes.AddChart2(240xlXYScatter).Select
    For 1 To 170
       ActiveChart
    .SeriesCollection.NewSeries
       ActiveChart
    .FullSeriesCollection(1).Name Sheets("P").Range("P" i).Value
       ActiveChart
    .FullSeriesCollection(1).XValues Sheets("P").Range("Q" i).Value
       ActiveChart
    .FullSeriesCollection(1).Values Sheets("P").Range("R" i).Value
    Next
    End Sub 
    Last edited by iranweld; 2015/10/27, 15:12.

    کامنت

    چند لحظه..