销售员业绩
1 技术要点
图表。
这里使用:柱状图、饼状图、多系列。
2 功能描述
输入查询条件:开始日期、结束日期,点击查询按钮,
下方显示查询结果:员工编号、员工姓名、销售金额。
3 主要步骤
步骤1:遍历员工表的所有行
步骤1-1:判断是否销售部门的员工
步骤1-2:设置业绩公式,根据条件生成
步骤2:根据步骤1的数据,生成图表
步骤2-1:删除原有的图表
步骤2-2:创建图表
步骤2-3:设置数据源
步骤2-4:设置图表类型为柱状图
步骤2-5:设置显示标题
4 完整代码
Sub query()
'声明变量
Dim dateBegin As String '查询条件:开始时间
Dim dateEnd As String '查询条件:结束时间
Dim i As Integer '循环变量
Dim rowIndexNew As Integer '新行的行号
Dim formula0 As String '计算业绩的公式
dateBegin = Worksheets("D01销售员业绩").Range("B5").Value
dateEnd = Worksheets("D01销售员业绩").Range("C5").Value
'步骤1:遍历员工表的所有行
rowIndexNew = 11
For i = 2 To Worksheets("A01员工").Range("a1").End(xlDown).Row
'步骤1-1:判断是否销售部门的员工
If Worksheets("A01员工").Range("D" & i).Value = "销售部" Then
Worksheets("D01销售员业绩").Range("B" & rowIndexNew & ":C" & rowIndexNew).Value = Worksheets("A01员工").Range("A" & i & ":B" & i).Value
'步骤1-2:设置业绩公式,根据条件生成
formula0 = "=sumifs(A0602出库明细!P:P,A0602出库明细!D:D,B" & rowIndexNew
If dateBegin <> "" Then
formula0 = formula0 & ",A0602出库明细!F:F, " & """>=" & dateBegin & """"
End If
If dateEnd <> "" Then
formula0 = formula0 & ",A0602出库明细!F:F, " & """<" & DateAdd("h", 1, dateEnd) & """"
End If
formula0 = formula0 & ")"
Worksheets("D01销售员业绩").Range("D" & rowIndexNew).Formula = formula0
rowIndexNew = rowIndexNew + 1
End If
Next
'步骤2:生成图表
Dim chartObject1 As ChartObject
Dim chart1 As Chart
Dim r1 As Range
'定义一个区域,下一步借助此区域的位置来设置图表的位置
Set r1 = Worksheets("D01销售员业绩").Range("G5:K17")
'步骤2-1:删除原有的图表
If Worksheets("D01销售员业绩").ChartObjects.Count > 0 Then
Worksheets("D01销售员业绩").ChartObjects(1).delete
End If
'步骤2-2:创建图表
Set chartObject1 = Worksheets("D01销售员业绩").ChartObjects.Add(r1.Left, r1.Top, r1.Width, r1.Height)
Set chart1 = chartObject1.Chart
'步骤2-3:设置数据源
chart1.SetSourceData Source:=Worksheets("D01销售员业绩").Range("C10:D" & (rowIndexNew - 1))
'步骤2-4:设置图表类型为柱状图
chart1.ChartType = xlColumnClustered '柱状图
'步骤2-5:设置显示标题
chart1.HasTitle = True
'设置标题文本
chart1.ChartTitle.Caption = "销售员业绩图表"
End Sub
5 代码讲解
ChartObjects表示工作表中的内嵌图表,Delete用于删除已有图表,Add用于添加图表。