【发布时间】:2018-08-08 22:15:18
【问题描述】:
Name Progress
Student1 93
Student2 80
Student3 51
Student4 91
Student5 65
Student6 45
student7 33
我还是 VBA 编程新手。上面是我的数据集示例,下面是我的代码,它能够向右填充列 C 到 E 而不会出现任何错误。下面是我的图表代码,当我运行它时它给了我一个糟糕的图表。请告知如何在同一工作表的条形图上的 C 到 E 列上绘制这些填充值,其中绿色条显示进度 >= 90,琥珀色条显示 50
Sub ClassCategories()
Dim startRow As Long, lastRow As Long, n As Integer
startRow = 2
n = 8
Dim i As Long, Progress As Long
Dim sClass1 As String
Dim sClass2 As String
Dim sClass3 As String
For i = startRow To n
Progress = ThisWorkbook.Worksheets("sheet1").Range("B" & i).Value
' Check progress and classify accordingly
If Progress >= 90 Then
sClass3 = Progress
Else
sClass3 = " "
End If
If 50 <= Progress And Progress < 90 Then
sClass2 = Progress
Else
sClass2 = " "
End If
If Progress < 50 Then
sClass1 = Progress
Else
sClass1 = " "
End If
' Write out the class to column C to E
Worksheets("sheet1").Range("C" & i).Value = sClass1
Worksheets("sheet1").Range("D" & i).Value = sClass2
Worksheets("sheet1").Range("E" & i).Value = sClass3
Next
End Sub
私有子 Createachart()
Dim oChObj As ChartObject, rngSourceData As Range, ws As Worksheet
Set ws = Sheets("Sheet1")
Set rngSourceData = ws.Range("C3:E8")
Set oChObj = ws.ChartObjects.Add(Left:=ws.Columns("A").Left,
Width:=290, Top:=ws.Rows(8).Top, Height:=190)
With oChObj.Chart
.ChartType = xlColumnClustered
.SetSourceData Source:=rngSourceData, PlotBy:=xlColumns
.Axes(xlCategory).CategoryNames = ws.Range("A2:A8")
.HasTitle = True
End With
End Sub
【问题讨论】:
-
录制宏。然后在需要的地方进行调整
-
请使用tour 并阅读How to Ask。您已经完成了一半,但您目前拥有的代码并未显示任何创建图表的努力,因此看起来您希望有人为您提供完整的解决方案。请尝试自行解决问题并修改您的问题,以便说明您需要帮助解决的具体、可回答的问题或错误。
-
那么,我们应该为您创建图表吗?
-
抱歉,忘记包含我的图表宏。
-
你想把它绘制在同一张图表上吗?