MSCHART控件,我想X轴的长度一开始就固定显示每月天数,数据线是根据当前时间得到数据才显示,比如我的X轴已经固定30天,现在才到10天,数据线应该显示到10天,后面20天是空白,现在的问题是图表的值自动填满了,我是新手,请高手帮忙解决!万分感谢!!!!我才注册的

解决方案 »

  1.   

    '把以前的代码简单修改下,看下大概意思吧。具体没调试。Sub madeMonthChart(badpercent() As String, workFlow As String)
        Dim iColumn As Integer
        Dim vChartData(1 To 31, 1) As Variant
        
        With MSChart1
            .ChartType = VtChChartType2dLine
            .AllowDithering = False
            .AllowDynamicRotation = False
            .AllowSelections = False
            .AllowSeriesSelection = False
            .AutoIncrement = False
            .ShowLegend = False
            
            .Plot.Axis(VtChAxisIdY).ValueScale.Auto = False '是否自动设置纵坐标
            .Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0
            .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 100
            
            .Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 10 '设置Y轴网格数量
            '给数组赋值(在这里要把该月的日期都赋进去)
           dim days as long
           days =DaysOfMonth(2009,12)  '得到某月的天数
            For iColumn = 1 To days 
                vChartData(iColumn, 0) = CStr(iColumn) & "日"
            Next
            '给数组赋值(你在这里只要把前10天的值赋进去就行了)
            dim x as long 
            x=UBound(badpercent)
            For iColumn = 1 To x + 1
                vChartData(iColumn, 1) = CDec(FormatNumber(badpercent(iColumn - 1), 4)) * 100
            Next
            '加载数据到图表
            .ChartData = vChartData
            
            '添加图表标题
            .TitleText = myMonth & "  " & workFlow & "オトヤツイサチシツハ(%)"
            
        End With
        
    End SubPublic   Function   DaysOfMonth(Year   As   Long,   Month   As   Long)   As   Long   
              Dim   Day1   As   String,   Day2   As   String   
              Day1   =   CStr(Year)   +   "-"   +   CStr(Month)   +   "-1"   
              Day2   =   CStr(Year)   +   "-"   +   CStr(Month   +   1)   +   "-1"   
              DaysOfMonth   =   DateDiff("d",   Day1,   Day2)   
      End   Function   
      

  2.   

    Sub madeMonthChart(badpercent() As String, workFlow As String)
        Dim iColumn As Integer
        Dim vChartData(1 To 31, 1) As Variant
        
        With MSChart1
            .ChartType = VtChChartType2dLine
            .AllowDithering = False
            .AllowDynamicRotation = False
            .AllowSelections = False
            .AllowSeriesSelection = False
            .AutoIncrement = False
            .ShowLegend = False
            
            .Plot.Axis(VtChAxisIdY).ValueScale.Auto = False '是否自动设置纵坐标
            .Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0
            .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 100
            
            .Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 10 '设置Y轴网格数量
            '给数组赋值(在这里要把该月的日期都赋进去)
           dim days as long
           days =DaysOfMonth(2009,12)  '得到某月的天数
            For iColumn = 1 To days 
                vChartData(iColumn, 0) = CStr(iColumn) & "日"
            Next
            '给数组赋值(你在这里只要把前10天的值赋进去就行了)
            dim x as long 
            x=UBound(badpercent)
            For iColumn = 1 To x + 1
                vChartData(iColumn, 1) = CDec(FormatNumber(badpercent(iColumn - 1), 4)) * 100
            Next
            '加载数据到图表
            .ChartData = vChartData
            
            '添加图表标题
            .TitleText = myMonth & "  " & workFlow & "オトヤツイサチシツハ(%)"
            
        End With
        
    End SubPublic   Function   DaysOfMonth(Year   As   Long,   Month   As   Long)   As   Long   
              Dim   Day1   As   String,   Day2   As   String   
              Day1   =   CStr(Year)   +   "-"   +   CStr(Month)   +   "-1"   
              Day2   =   CStr(Year)   +   "-"   +   CStr(Month   +   1)   +   "-1"   
              DaysOfMonth   =   DateDiff("d",   Day1,   Day2)   
      End   Function
      

  3.   

    2楼的朋友快出现,那个badpercent是什么? 或者你的代码怎么调用的啊,怎么给过程参数?我是刚开始学的,谢谢
      

  4.   


    建一个variant数组,不画线的数据的不添加就可以了,不要赋值0,测试以下代码:Private Sub Form_Load()
        
        Dim iCol As Integer
        Dim Value(1 To 30, 1 To 2) As Variant
        
        MSChart1.chartType = VtChChartType2dLine
        MSChart1.ColumnLabelCount = 1
        
        For iCol = 1 To 30 '标刻度
            Value(iCol, 1) = "T" & iCol
        Next    For iCol = 1 To 15 '画线1到15刻度
            Value(iCol, 2) = Rnd * 50
        Next
        
        MSChart1.ChartData = ValueEnd Sub