销售员业绩

1 技术要点

图表。

这里使用:柱状图、饼状图、多系列。


2 功能描述

img

输入查询条件:开始日期、结束日期,点击查询按钮,

下方显示查询结果:员工编号、员工姓名、销售金额。


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用于添加图表。