vba常用代码

Sub step随时_clear()

     '程序开始时间
     
      Dim tm
      tm = Now()
     
      Sheets("业务员数据盘").Activate
      
      
      If Range("v3") <> "" Then
      
      Dim max_row_v As Long
      max_row_v = Sheets("业务员数据盘").Range("v1048576").End(xlUp).Row
      
      Debug.Print max_row_v

      coordinate_vab = "v" + CStr(3) + ":ab" + CStr(max_row_v)

      Sheets("业务员数据盘").Range(coordinate_vab).ClearContents
      
      '##### 重要,需要将其他全部记录清掉 #####
      
      '先【华林】
      
      Sheets("华林存取").Activate
      
      If Sheets("华林存取").Range("ay2") <> "" Then
      
     '获取笔数底行
      max_row_a_1 = Sheets("华林存取").Range("A1048576").End(xlUp).Row
      
      '清除ai到bh区域的内容
      
      coordinate_hualin_clear = "ai" + CStr(2) + ":bl" + CStr(max_row_a_1)
      
      'MsgBox coordinate_hualin_clear
      
      Sheets("华林存取").Range(coordinate_hualin_clear).ClearContents
      
      Else
      
      Range("an2").Value = Range("an3").Value
      
      End If
      
      
      '然后【中关村】
      Sheets("中关村存取").Activate
      
   
      If Sheets("中关村存取").Range("ay2") <> "" Then
      
     '获取笔数底行
      max_row_a_2 = Sheets("中关村存取").Range("A1048576").End(xlUp).Row
      
      '清除ai到bh区域的内容
      
      coordinate_zgc_clear = "ai" + CStr(2) + ":bl" + CStr(max_row_a_2)
      
      
      Sheets("中关村存取").Range(coordinate_zgc_clear).ClearContents
      
      Else
      
      Range("an2").Value = Range("an3").Value
      
      End If
      
     
     
      '再【九信】
      Sheets("九信直转").Activate
      
     If Sheets("九信直转").Range("ay2") <> "" Then
      
     '获取笔数底行
      max_row_a_3 = Sheets("九信直转").Range("A1048576").End(xlUp).Row
      
      '清除ai到bh区域的内容
      
      coordinate_jx_clear = "ai" + CStr(2) + ":bl" + CStr(max_row_a_3)
      
      
      Sheets("九信直转").Range(coordinate_jx_clear).ClearContents
      
      Else
      
      Range("an2").Value = Range("an3").Value
      
      End If
      
      
      
     

     

     
     '再【直转】
      Sheets("直转(卖转贴)").Activate
      
     If Sheets("直转(卖转贴)").Range("ay2") <> "" Then
      
     '获取笔数底行
      max_row_a_4 = Sheets("直转(卖转贴)").Range("A1048576").End(xlUp).Row
      
      '清除ai到bh区域的内容
      
      coordinate_zz_clear = "ai" + CStr(2) + ":bl" + CStr(max_row_a_4)
      
      
      Sheets("直转(卖转贴)").Range(coordinate_zz_clear).ClearContents
      
      Else
      
      Range("an2").Value = Range("an3").Value
      
      End If
      
      
      
      
      

      
 
     
      Else '以防万一也需要清
     
     '##### 重要,需要将其他全部记录清掉 #####
      
      '先华林
      
      Sheets("华林存取").Activate
      
     '获取笔数底行
      max_row_a_1 = Sheets("华林存取").Range("A1048576").End(xlUp).Row
      
      '清除x到au区域的内容
      coordinate_hualin_clear = "ai" + CStr(2) + ":bl" + CStr(max_row_a_1)
      Sheets("华林存取").Range(coordinate_hualin_clear).ClearContents
      
      '然后中关村
      Sheets("中关村存取").Activate
      
     '获取笔数底行
      max_row_a_2 = Sheets("中关村存取").Range("A1048576").End(xlUp).Row
      
      '清除x到au区域的内容
      coordinate_zgc_clear = "ai" + CStr(2) + ":bl" + CStr(max_row_a_2)
     Sheets("中关村存取").Range(coordinate_zgc_clear).ClearContents
     
     '再【九信】
      Sheets("九信直转").Activate
      
     '获取笔数底行
      max_row_a_3 = Sheets("九信直转").Range("A1048576").End(xlUp).Row
      
      '清除x到au区域的内容
      coordinate_jx_clear = "ai" + CStr(2) + ":bl" + CStr(max_row_a_3)
     Sheets("九信直转").Range(coordinate_jx_clear).ClearContents
     
     '再【直转】
      Sheets("直转(卖转贴)").Activate
      
     '获取笔数底行
      max_row_a_4 = Sheets("直转(卖转贴)").Range("A1048576").End(xlUp).Row
      
      '清除x到au区域的内容
      coordinate_zz_clear = "ai" + CStr(2) + ":bl" + CStr(max_row_a_4)
      Sheets("直转(卖转贴)").Range(coordinate_zz_clear).ClearContents
     
     
     '最后声明
      MsgBox "已经clear"
      
      End If
    
      
     '跳回汇总盘页面
      Sheets("业务员数据盘").Activate
      
      'Debug.Print coordinate_vab
      
      
     '程序结束时间
      MsgBox "执行clear耗时:" & Format(Now() - tm, "hh:mm:ss")
      
      Debug.Print "执行clear耗时:" & Format(Now() - tm, "hh:mm:ss")
      
     '保存
      Workbooks("【修订7】2021年直转+转转.xlsm").Save
      

      
End Sub


Sub step1_执行华林()


     '【重要】先看汇总盘页面是否已经有该数据
     
     Sheets("业务员数据盘").Activate
     
     '如果有,先声明,不要操作
      
     If Range("AD2") <> 0 Then
     
     Range("AD3").Value = Range("AD4").Value
     
     MsgBox "你重复执行华林了,请执行其他操作"
     
     Else
     
     Sheets("华林存取").Activate
     
     '程序开始时间
     Dim tm
     tm = Now()
     

      '#############################################【执行前置操作】################################################

      '##### 执行收票创收金额列 #####
      
      '获取笔数底行
      max_row_a = Sheets("华林存取").Range("A1048576").End(xlUp).Row
      
      '2.1加字段了,可以
     
      coordinate_x = "ai" + CStr(2) + ":ai" + CStr(max_row_a)
      
      '使用公式
      Range("ai2").Formula = "=(Z2-AB2)/2-(AC2*0.85*0.1)"
      
      '将公式填充到一定范围
      Range("ai2").AutoFill Destination:=Range(coordinate_x)
      
      '##### 执行出票创收金额列 #####
      
      coordinate_y = "aj" + CStr(2) + ":aj" + CStr(max_row_a)
      
      '使用公式
      Range("aj2").Formula = "=(Z2-AB2)/2-(AC2*0.85*0.25)"
      
      '将公式填充到一定范围
      Range("aj2").AutoFill Destination:=Range(coordinate_y)
      
      
  
      
   
      '##### 执行交易月份列 #####
      
      coordinate_z = "ak" + CStr(2) + ":ak" + CStr(max_row_a)
      
      '使用公式
      Range("ak2").Formula = "=IF(VALUE(TEXT(MONTH(H2),""0""))<10,""0""&TEXT(MONTH(H2),""0""),TEXT(MONTH(H2),""0""))"
      
      '将公式填充到一定范围
      Range("ak2").AutoFill Destination:=Range(coordinate_z)
     
     
         
      '##### 过渡带月份的业务员 #####
      
      '新收票 bk
      
      coordinate_bk = "bk" + CStr(2) + ":bk" + CStr(max_row_a)
      
      '使用公式
      Range("bk2").Formula = "=AD2&$BM$1&AK2"
      
      '将公式填充到一定范围
      Range("bk2").AutoFill Destination:=Range(coordinate_bk)
      
      '新出票 bl
      
      coordinate_bl = "bl" + CStr(2) + ":bl" + CStr(max_row_a)
      
      '使用公式
      Range("bl2").Formula = "=AF2&$BM$1&AK2"
      
      '将公式填充到一定范围
      Range("bl2").AutoFill Destination:=Range(coordinate_bl)
      
      
     

     '##### 执行拼接1 #####
      
      coordinate_ab = "am" + CStr(2) + ":am" + CStr(max_row_a)
      
      '使用公式
      Range("am2").Formula = "=A2&BK2"
      
      '将公式填充到一定范围
      Range("am2").AutoFill Destination:=Range(coordinate_ab)
      
       '##### 执行拼接2 #####
      
      coordinate_ac = "an" + CStr(2) + ":an" + CStr(max_row_a)
      
      '使用公式
      Range("an2").Formula = "=A2&BL2"
      
      '将公式填充到一定范围
      Range("an2").AutoFill Destination:=Range(coordinate_ac)
      
      
      '##### 执行拼接1去重 #####
      
      '先复制值到ad
      coordinate_ad = "ao" + CStr(2) + ":ao" + CStr(max_row_a)
      Range(coordinate_ad).Value = Range(coordinate_ab).Value
      
      '使用公式,这是不行的,还是要直接去重
      'Range("ad2").Formula = "=INDEX(AB:AB,1+MATCH(,COUNTIF(AD$1:AD1,AB$2:AB$1000),))&"""
      
      Range(coordinate_ad).RemoveDuplicates Columns:=1, Header:=xlNo
      
     '##### 执行拼接2去重 #####
      
      '先复制值到ae
      coordinate_ae = "ap" + CStr(2) + ":ap" + CStr(max_row_a)
      Range(coordinate_ae).Value = Range(coordinate_ac).Value
      
      Range(coordinate_ae).RemoveDuplicates Columns:=1, Header:=xlNo
      
      
      
      '#############################################【执行业务员操作】################################################
      
       '##### 判断业务员
   
      '复制收票人 bk复制到av
      Columns("av:av").Value = Columns("bk:bk").Value
      '复制出票人 bl复制到aw
      Columns("aw:aw").Value = Columns("bl:bl").Value
      
      '收票人去重
      Range("av:av").RemoveDuplicates Columns:=1, Header:=xlNo
      '出票人去重
      Range("aw:aw").RemoveDuplicates Columns:=1, Header:=xlNo
      
     '获取去重结果的底行
     max_row_ak = Sheets("华林存取").Range("av1048576").End(xlUp).Row
     max_row_al = Sheets("华林存取").Range("aw1048576").End(xlUp).Row
     
     'Debug.Print max_row_ak
     'Debug.Print max_row_al

     
     '获得av的坐标
     Dim a, b As Long
     a = 2
     b = max_row_ak
     coordinate_ak = "av" + CStr(a) + ":av" + CStr(b)
     
     '获得aw的坐标
     Dim c, d As Long
     c = 2
     d = max_row_al
     coordinate_al = "aw" + CStr(c) + ":aw" + CStr(d)
     
     '获得as的坐标
     Dim x, y As Long
     x = 2
     y = max_row_ak
     coordinate_ah = "as" + CStr(x) + ":as" + CStr(y)
     
     '把ak原有值放到ah
     Range(coordinate_ah).Value = Range(coordinate_ak).Value
     
     '寻找关键node
     node_row = max_row_ak + 1
     
     'Debug.Print node_row
     
     Dim i, j As Long
     i = node_row
     j = node_row + max_row_al - 2
     coordinate_node = "as" + CStr(i) + ":as" + CStr(j)
     
     '打印
     'Debug.Print coordinate_node, coordinate_ah, coordinate_ak, coordinate_al
     
     '弃用
     'Columns("ah:ah").Value = Columns("ak:ak").Value
     
     '把al值粘贴到ah下面
     Range(coordinate_node).Value = Range(coordinate_al).Value
     
     '定义合并后新ah下限coordinate_node2
     Dim max_row_ah
     max_row_ah = max_row_ak + max_row_al - 1
     
     coordinate_node2 = "as" + CStr(2) + ":as" + CStr(max_row_ah)
     
     Range(coordinate_node2).RemoveDuplicates Columns:=1, Header:=xlNo
     
     '去重之后重新定义max_row_ah_new
     
     Dim max_row_ah_new
     
     max_row_ah_new = Sheets("华林存取").Range("as1048576").End(xlUp).Row
     
     Debug.Print max_row_ah_new
     
     '更新业务员数据,定义coordinate_node3 AR列
     '之前是ar,现在是bc
     coordinate_node3 = "bc" + CStr(2) + ":bc" + CStr(max_row_ah)
     Range(coordinate_node3).Value = Range(coordinate_node2).Value
     
     
     '#############################################【执行分表操作】################################################
     
     '##### 执行交易月 #####
     
     '根据业务员下标,生成交易月坐标, BE列
     coordinate_at = "be" + CStr(2) + ":be" + CStr(max_row_ah_new)
     
     Debug.Print coordinate_at
     
     '使用公式,这个月份以后要改,2.3改动了
     
      Range("BE2").Formula = "=MID(AS2,FIND(""-"",AS2,1)+1,2)"
      
      '将公式填充到一定范围
      Range("BE2").AutoFill Destination:=Range(coordinate_at)
      
      '##### 执行业务员模糊 ##### BF
     
     '根据业务员下标,生成交易月坐标, AU列
     coordinate_au = "bf" + CStr(2) + ":bf" + CStr(max_row_ah_new)
     
     '使用公式
      Range("bf2").Formula = "=$BG$1&BC2"
      
      '将公式填充到一定范围
      Range("bf2").AutoFill Destination:=Range(coordinate_au)

     '##### 执行业务流量 #####
     
     '根据业务员下标,生成流量坐标, AN列
     coordinate_an = "AY" + CStr(2) + ":AY" + CStr(max_row_ah_new)
     
     '使用公式
      Range("aY2").Formula = "=SUMIFS($C:$C,$BK:$BK,BC2,$AK:$AK,BE2)+SUMIFS($C:$C,$BL:$BL,BC2,$AK:$AK,BE2)"
      
      '将公式填充到一定范围
      Range("aY2").AutoFill Destination:=Range(coordinate_an)
      
      
     '##### 执行业务笔数 #####
     
     '根据业务员下标,生成业务笔数坐标, AO列
     coordinate_ao = "AZ" + CStr(2) + ":AZ" + CStr(max_row_ah_new)
     
     '使用公式
      Range("AZ2").Formula = "=COUNTIF(AO:AO,BF2)+COUNTIF(AP:AP,BF2)"
      
      '将公式填充到一定范围
      Range("az2").AutoFill Destination:=Range(coordinate_ao)
     

     '##### 执行提成金额 #####
     
     '根据业务员下标,生成提成金额坐标, AP列
     coordinate_ap = "ba" + CStr(2) + ":ba" + CStr(max_row_ah_new)
     
     '使用公式
      Range("ba2").Formula = "=SUMIFS($AE:$AE,$BK:$BK,BC2,$AK:$AK,BE2)+SUMIFS($AG:$AG,$BL:$BL,BC2,$AK:$AK,BE2)"
      
      '将公式填充到一定范围
      Range("ba2").AutoFill Destination:=Range(coordinate_ap)
      
      '##### 执行创收金额 #####
     
     '根据业务员下标,生成创收金额坐标, AQ列
     coordinate_aq = "bb" + CStr(2) + ":bb" + CStr(max_row_ah_new)
     
     '使用公式
      Range("bb2").Formula = "=SUMIFS($AI:$AI,$BK:$BK,BC2,$AK:$AK,BE2)+SUMIFS($AJ:$AJ,$BL:$BL,BC2,$AK:$AK,BE2)"
      
      '将公式填充到一定范围
      Range("bb2").AutoFill Destination:=Range(coordinate_aq)
      
      
     '##### 执行 输入业务表名  #####
     
     '根据业务员下标,生成业务表坐标, bd列
     coordinate_as = "bd" + CStr(2) + ":bd" + CStr(max_row_ah_new)
     
     '使用公式
      Range("bd2").Formula = "华林存数据"
      
      '将公式填充到一定范围
      Range("bd2").AutoFill Destination:=Range(coordinate_as)
      
      
      
      
     '##### 最后将分表数据贴在汇总数据表 #####
     
     
     '【重要!!!】如果是需要继续追加
     '获取已有汇总表的数据的底行
     
     '确定华林表矩形区域范围 ay 到 be
     coordinate_hualin_ant = "ay" + CStr(2) + ":be" + CStr(max_row_ah_new)
     
     Sheets("业务员数据盘").Activate
     
      If Range("v3") <> "" Then
      
      max_row_sum_v = Sheets("业务员数据盘").Range("v1048576").End(xlUp).Row
     
     '拼接节点 max_row_sum_v_new
     
     max_row_sum_v_new = max_row_sum_v + 1
     
     ' 注意是-2
     jiaduan = max_row_ah_new - 2
     
     '确定汇总表矩形区域范围
     coordinate_sum_vab = "v" + CStr(max_row_sum_v_new) + ":ab" + CStr(max_row_sum_v_new + jiaduan)
     
     Sheets("业务员数据盘").Activate
     
     Sheets("业务员数据盘").Range(coordinate_sum_vab).Value = Sheets("华林存取").Range(coordinate_hualin_ant).Value
     
     
     
     Else '【重要!!!】如果是新写
     
     '确定华林表矩形区域范围
     coordinate_hualin_ant = "ay" + CStr(2) + ":be" + CStr(max_row_ah_new)
     
     '确定汇总表矩形区域范围
     coordinate_sum_vab = "v" + CStr(3) + ":ab" + CStr(max_row_ah_new + 1)
     
     Sheets("业务员数据盘").Activate
     
     Sheets("业务员数据盘").Range(coordinate_sum_vab).Value = Sheets("华林存取").Range(coordinate_hualin_ant).Value
      
      
     
     
     
      
     
     
     
      
      End If
     
      
      
     
     '##### 耗时和保存 #####
     
     '跳回汇总盘页面
      Sheets("业务员数据盘").Activate
      
      
     '程序结束时间
      MsgBox "执行华林存取程序耗时:" & Format(Now() - tm, "hh:mm:ss")
      
      Debug.Print "执行华林存取程序耗时:" & Format(Now() - tm, "hh:mm:ss")
      
      '保存
      Workbooks("【修订7】2021年直转+转转.xlsm").Save
      
      End If
      

      
End Sub
Sub step2_执行中关村()


     '【重要】先看汇总盘页面是否已经有该数据
     
     Sheets("业务员数据盘").Activate
     
     '如果有,先声明,不要操作
      
     If Range("AE2") <> 0 Then
     
     Range("AE3").Value = Range("AE4").Value
     
     MsgBox "你重复执行中关村了,请执行其他操作"
     
     Else
     
     Sheets("中关村存取").Activate
     
     '程序开始时间
     Dim tm
     tm = Now()
     

         '#############################################【执行前置操作】################################################

      '##### 执行收票创收金额列 #####
      
      '获取笔数底行
      max_row_a = Sheets("中关村存取").Range("A1048576").End(xlUp).Row
      
      '2.1加字段了,可以
     
      coordinate_x = "ai" + CStr(2) + ":ai" + CStr(max_row_a)
      
      '使用公式
      Range("ai2").Formula = "=(Z2-AB2)/2-(AC2*0.85*0.1)"
      
      '将公式填充到一定范围
      Range("ai2").AutoFill Destination:=Range(coordinate_x)
      
      '##### 执行出票创收金额列 #####
      
      coordinate_y = "aj" + CStr(2) + ":aj" + CStr(max_row_a)
      
      '使用公式
      Range("aj2").Formula = "=(Z2-AB2)/2-(AC2*0.85*0.25)"
      
      '将公式填充到一定范围
      Range("aj2").AutoFill Destination:=Range(coordinate_y)
      
      
  
      
   
      '##### 执行交易月份列 #####
      
      coordinate_z = "ak" + CStr(2) + ":ak" + CStr(max_row_a)
      
      '使用公式
      Range("ak2").Formula = "=IF(VALUE(TEXT(MONTH(H2),""0""))<10,""0""&TEXT(MONTH(H2),""0""),TEXT(MONTH(H2),""0""))"
      
      '将公式填充到一定范围
      Range("ak2").AutoFill Destination:=Range(coordinate_z)
     
     
         
      '##### 过渡带月份的业务员 #####
      
      '新收票 bk
      
      coordinate_bk = "bk" + CStr(2) + ":bk" + CStr(max_row_a)
      
      '使用公式
      Range("bk2").Formula = "=AD2&$BM$1&AK2"
      
      '将公式填充到一定范围
      Range("bk2").AutoFill Destination:=Range(coordinate_bk)
      
      '新出票 bl
      
      coordinate_bl = "bl" + CStr(2) + ":bl" + CStr(max_row_a)
      
      '使用公式
      Range("bl2").Formula = "=AF2&$BM$1&AK2"
      
      '将公式填充到一定范围
      Range("bl2").AutoFill Destination:=Range(coordinate_bl)
      
      
     

     '##### 执行拼接1 #####
      
      coordinate_ab = "am" + CStr(2) + ":am" + CStr(max_row_a)
      
      '使用公式
      Range("am2").Formula = "=A2&BK2"
      
      '将公式填充到一定范围
      Range("am2").AutoFill Destination:=Range(coordinate_ab)
      
       '##### 执行拼接2 #####
      
      coordinate_ac = "an" + CStr(2) + ":an" + CStr(max_row_a)
      
      '使用公式
      Range("an2").Formula = "=A2&BL2"
      
      '将公式填充到一定范围
      Range("an2").AutoFill Destination:=Range(coordinate_ac)
      
      
      '##### 执行拼接1去重 #####
      
      '先复制值到ad
      coordinate_ad = "ao" + CStr(2) + ":ao" + CStr(max_row_a)
      Range(coordinate_ad).Value = Range(coordinate_ab).Value
      
      '使用公式,这是不行的,还是要直接去重
      'Range("ad2").Formula = "=INDEX(AB:AB,1+MATCH(,COUNTIF(AD$1:AD1,AB$2:AB$1000),))&"""
      
      Range(coordinate_ad).RemoveDuplicates Columns:=1, Header:=xlNo
      
     '##### 执行拼接2去重 #####
      
      '先复制值到ae
      coordinate_ae = "ap" + CStr(2) + ":ap" + CStr(max_row_a)
      Range(coordinate_ae).Value = Range(coordinate_ac).Value
      
      Range(coordinate_ae).RemoveDuplicates Columns:=1, Header:=xlNo
      
      
      
      '#############################################【执行业务员操作】################################################
      
       '##### 判断业务员
   
      '复制收票人 bk复制到av
      Columns("av:av").Value = Columns("bk:bk").Value
      '复制出票人 bl复制到aw
      Columns("aw:aw").Value = Columns("bl:bl").Value
      
      '收票人去重
      Range("av:av").RemoveDuplicates Columns:=1, Header:=xlNo
      '出票人去重
      Range("aw:aw").RemoveDuplicates Columns:=1, Header:=xlNo
      
     '获取去重结果的底行
     max_row_ak = Sheets("中关村存取").Range("av1048576").End(xlUp).Row
     max_row_al = Sheets("中关村存取").Range("aw1048576").End(xlUp).Row
     
     'Debug.Print max_row_ak
     'Debug.Print max_row_al

     
     '获得av的坐标
     Dim a, b As Long
     a = 2
     b = max_row_ak
     coordinate_ak = "av" + CStr(a) + ":av" + CStr(b)
     
     '获得aw的坐标
     Dim c, d As Long
     c = 2
     d = max_row_al
     coordinate_al = "aw" + CStr(c) + ":aw" + CStr(d)
     
     '获得as的坐标
     Dim x, y As Long
     x = 2
     y = max_row_ak
     coordinate_ah = "as" + CStr(x) + ":as" + CStr(y)
     
     '把ak原有值放到ah
     Range(coordinate_ah).Value = Range(coordinate_ak).Value
     
     '寻找关键node
     node_row = max_row_ak + 1
     
     'Debug.Print node_row
     
     Dim i, j As Long
     i = node_row
     j = node_row + max_row_al - 2
     coordinate_node = "as" + CStr(i) + ":as" + CStr(j)
     
     '打印
     'Debug.Print coordinate_node, coordinate_ah, coordinate_ak, coordinate_al
     
     '弃用
     'Columns("ah:ah").Value = Columns("ak:ak").Value
     
     '把al值粘贴到ah下面
     Range(coordinate_node).Value = Range(coordinate_al).Value
     
     '定义合并后新ah下限coordinate_node2
     Dim max_row_ah
     max_row_ah = max_row_ak + max_row_al - 1
     
     coordinate_node2 = "as" + CStr(2) + ":as" + CStr(max_row_ah)
     
     Range(coordinate_node2).RemoveDuplicates Columns:=1, Header:=xlNo
     
     '去重之后重新定义max_row_ah_new
     
     Dim max_row_ah_new
     
     max_row_ah_new = Sheets("中关村存取").Range("as1048576").End(xlUp).Row
     
     Debug.Print max_row_ah_new
     
     '更新业务员数据,定义coordinate_node3 AR列
     '之前是ar,现在是bc
     coordinate_node3 = "bc" + CStr(2) + ":bc" + CStr(max_row_ah)
     Range(coordinate_node3).Value = Range(coordinate_node2).Value
     
     
     '#############################################【执行分表操作】################################################
     
     '##### 执行交易月 #####
     
     '根据业务员下标,生成交易月坐标, BE列
     coordinate_at = "be" + CStr(2) + ":be" + CStr(max_row_ah_new)
     
     Debug.Print coordinate_at
     
     '使用公式,这个月份以后要改,2.3改动了
     
      Range("BE2").Formula = "=MID(AS2,FIND(""-"",AS2,1)+1,2)"
      
      '将公式填充到一定范围
      Range("BE2").AutoFill Destination:=Range(coordinate_at)
      
      '##### 执行业务员模糊 ##### BF
     
     '根据业务员下标,生成交易月坐标, AU列
     coordinate_au = "bf" + CStr(2) + ":bf" + CStr(max_row_ah_new)
     
     '使用公式
      Range("bf2").Formula = "=$BG$1&BC2"
      
      '将公式填充到一定范围
      Range("bf2").AutoFill Destination:=Range(coordinate_au)

     '##### 执行业务流量 #####
     
     '根据业务员下标,生成流量坐标, AN列
     coordinate_an = "AY" + CStr(2) + ":AY" + CStr(max_row_ah_new)
     
     '使用公式
      Range("aY2").Formula = "=SUMIFS($C:$C,$BK:$BK,BC2,$AK:$AK,BE2)+SUMIFS($C:$C,$BL:$BL,BC2,$AK:$AK,BE2)"
      
      '将公式填充到一定范围
      Range("aY2").AutoFill Destination:=Range(coordinate_an)
      
      
     '##### 执行业务笔数 #####
     
     '根据业务员下标,生成业务笔数坐标, AO列
     coordinate_ao = "AZ" + CStr(2) + ":AZ" + CStr(max_row_ah_new)
     
     '使用公式
      Range("AZ2").Formula = "=COUNTIF(AO:AO,BF2)+COUNTIF(AP:AP,BF2)"
      
      '将公式填充到一定范围
      Range("az2").AutoFill Destination:=Range(coordinate_ao)
     

     '##### 执行提成金额 #####
     
     '根据业务员下标,生成提成金额坐标, AP列
     coordinate_ap = "ba" + CStr(2) + ":ba" + CStr(max_row_ah_new)
     
     '使用公式
      Range("ba2").Formula = "=SUMIFS($AE:$AE,$BK:$BK,BC2,$AK:$AK,BE2)+SUMIFS($AG:$AG,$BL:$BL,BC2,$AK:$AK,BE2)"
      
      '将公式填充到一定范围
      Range("ba2").AutoFill Destination:=Range(coordinate_ap)
      
      '##### 执行创收金额 #####
     
     '根据业务员下标,生成创收金额坐标, AQ列
     coordinate_aq = "bb" + CStr(2) + ":bb" + CStr(max_row_ah_new)
     
     '使用公式
      Range("bb2").Formula = "=SUMIFS($AI:$AI,$BK:$BK,BC2,$AK:$AK,BE2)+SUMIFS($AJ:$AJ,$BL:$BL,BC2,$AK:$AK,BE2)"
      
      '将公式填充到一定范围
      Range("bb2").AutoFill Destination:=Range(coordinate_aq)
      
      
     '##### 执行 输入业务表名  #####
     
     '根据业务员下标,生成业务表坐标, bd列
     coordinate_as = "bd" + CStr(2) + ":bd" + CStr(max_row_ah_new)
     
     '使用公式
      Range("bd2").Formula = "中关村数据"
      
      '将公式填充到一定范围
      Range("bd2").AutoFill Destination:=Range(coordinate_as)
      
      
     '##### 最后将分表数据贴在汇总数据表 #####
     
     
     '【重要!!!】如果是需要继续追加
     '获取已有汇总表的数据的底行
     
     '确定中关村表矩形区域范围 ay 到 be
     coordinate_zgc_ant = "ay" + CStr(2) + ":be" + CStr(max_row_ah_new)
     
     Sheets("业务员数据盘").Activate
     
      If Range("v3") <> "" Then
      
      max_row_sum_v = Sheets("业务员数据盘").Range("v1048576").End(xlUp).Row
     
     '拼接节点 max_row_sum_v_new
     
     max_row_sum_v_new = max_row_sum_v + 1
     
     ' 注意是-2
     jiaduan = max_row_ah_new - 2
     
     '确定汇总表矩形区域范围
     coordinate_sum_vab = "v" + CStr(max_row_sum_v_new) + ":ab" + CStr(max_row_sum_v_new + jiaduan)
     
     Sheets("业务员数据盘").Activate
     
     Sheets("业务员数据盘").Range(coordinate_sum_vab).Value = Sheets("中关村存取").Range(coordinate_zgc_ant).Value
     
     
     
     Else '【重要!!!】如果是新写
     
     '确定中关村表矩形区域范围
     coordinate_zgc_ant = "ay" + CStr(2) + ":be" + CStr(max_row_ah_new)
     
     '确定汇总表矩形区域范围
     coordinate_sum_vab = "v" + CStr(3) + ":ab" + CStr(max_row_ah_new + 1)
     
     Sheets("业务员数据盘").Activate
     
     Sheets("业务员数据盘").Range(coordinate_sum_vab).Value = Sheets("中关村存取").Range(coordinate_zgc_ant).Value
      
      
     
     
     
      
     
     
     
      
      End If
     
      
      
     
     '##### 耗时和保存 #####
     
     '跳回汇总盘页面
      Sheets("业务员数据盘").Activate
      
      
     '程序结束时间
      MsgBox "执行中关村存取程序耗时:" & Format(Now() - tm, "hh:mm:ss")
      
      Debug.Print "执行中关村存取程序耗时:" & Format(Now() - tm, "hh:mm:ss")
      
      '保存
      Workbooks("【修订7】2021年直转+转转.xlsm").Save
      
      End If
      

      
End Sub




Sub step3_执行九信直转()

     '【重要】先看汇总盘页面是否已经有该数据
     
     Sheets("业务员数据盘").Activate
     
     '如果有,先声明,不要操作
      
     If Range("AF2") <> 0 Then
     
     Range("AF3").Value = Range("AF4").Value
     
     MsgBox "你重复执行九信直转了,请执行其他操作"
     
     Else
     
     Sheets("九信直转").Activate
     
     '程序开始时间
     Dim tm
     tm = Now()
     

      '#############################################【执行前置操作】################################################

      
      '##### 直转不用收票, ai列不用执行#####
      
      
      '获取笔数底行
      max_row_a = Sheets("九信直转").Range("A1048576").End(xlUp).Row
      
      
      '##### 执行出票创收金额列 #####
      
      coordinate_y = "aj" + CStr(2) + ":aj" + CStr(max_row_a)
      
      '使用公式
      Range("aj2").Formula = "=Z2-AB2-AG2"
      
      '将公式填充到一定范围
      Range("aj2").AutoFill Destination:=Range(coordinate_y)
      
  
      
   
      '##### 执行交易月份列 #####
      
      coordinate_z = "ak" + CStr(2) + ":ak" + CStr(max_row_a)
      
      '使用公式
      Range("ak2").Formula = "=IF(VALUE(TEXT(MONTH(H2),""0""))<10,""0""&TEXT(MONTH(H2),""0""),TEXT(MONTH(H2),""0""))"
      
      '将公式填充到一定范围
      Range("ak2").AutoFill Destination:=Range(coordinate_z)
     
     
         
      '##### 过渡带月份的业务员 #####
      
      '新收票 bk, 不用执行
      
      'coordinate_bk = "bk" + CStr(2) + ":bk" + CStr(max_row_a)
      
      '使用公式
      'Range("bk2").Formula = "=AD2&$BM$1&AK2"
      
      '将公式填充到一定范围
      'Range("bk2").AutoFill Destination:=Range(coordinate_bk)
      
      '新出票 bl
      
      coordinate_bl = "bl" + CStr(2) + ":bl" + CStr(max_row_a)
      
      '使用公式
      Range("bl2").Formula = "=AF2&$BM$1&AK2"
      
      '将公式填充到一定范围
      Range("bl2").AutoFill Destination:=Range(coordinate_bl)
      
      
     

     '##### 执行拼接1 #####
      
      coordinate_ab = "am" + CStr(2) + ":am" + CStr(max_row_a)
      
      '使用公式
      Range("am2").Formula = "=A2&BK2"
      
      '将公式填充到一定范围
      Range("am2").AutoFill Destination:=Range(coordinate_ab)
      
       '##### 执行拼接2 #####
      
      coordinate_ac = "an" + CStr(2) + ":an" + CStr(max_row_a)
      
      '使用公式
      Range("an2").Formula = "=A2&BL2"
      
      '将公式填充到一定范围
      Range("an2").AutoFill Destination:=Range(coordinate_ac)
      
      
      '##### 执行拼接1去重 #####
      
      '先复制值到ad
      coordinate_ad = "ao" + CStr(2) + ":ao" + CStr(max_row_a)
      Range(coordinate_ad).Value = Range(coordinate_ab).Value
      
      '使用公式,这是不行的,还是要直接去重
      'Range("ad2").Formula = "=INDEX(AB:AB,1+MATCH(,COUNTIF(AD$1:AD1,AB$2:AB$1000),))&"""
      
      Range(coordinate_ad).RemoveDuplicates Columns:=1, Header:=xlNo
      
     '##### 执行拼接2去重 #####
      
      '先复制值到ae
      coordinate_ae = "ap" + CStr(2) + ":ap" + CStr(max_row_a)
      Range(coordinate_ae).Value = Range(coordinate_ac).Value
      
      Range(coordinate_ae).RemoveDuplicates Columns:=1, Header:=xlNo
      
      
      
      '#############################################【执行业务员操作】################################################
      
       '##### 判断业务员
   
      '复制收票人 bk复制到av
      Columns("av:av").Value = Columns("bk:bk").Value
      '复制出票人 bl复制到aw
      Columns("aw:aw").Value = Columns("bl:bl").Value
      
      '收票人去重
      Range("av:av").RemoveDuplicates Columns:=1, Header:=xlNo
      '出票人去重
      Range("aw:aw").RemoveDuplicates Columns:=1, Header:=xlNo
      
     '获取去重结果的底行
     max_row_ak = Sheets("九信直转").Range("av1048576").End(xlUp).Row
     max_row_al = Sheets("九信直转").Range("aw1048576").End(xlUp).Row
     
     'Debug.Print max_row_ak
     'Debug.Print max_row_al

     
     '获得av的坐标
     Dim a, b As Long
     a = 2
     b = max_row_ak
     coordinate_ak = "av" + CStr(a) + ":av" + CStr(b)
     
     '获得aw的坐标
     Dim c, d As Long
     c = 2
     d = max_row_al
     coordinate_al = "aw" + CStr(c) + ":aw" + CStr(d)
     
     '获得as的坐标
     Dim x, y As Long
     x = 2
     y = max_row_ak
     coordinate_ah = "as" + CStr(x) + ":as" + CStr(y)
     
     '把ak原有值放到ah
     Range(coordinate_ah).Value = Range(coordinate_ak).Value
     
     '寻找关键node
     node_row = max_row_ak + 1
     
     'Debug.Print node_row
     
     Dim i, j As Long
     i = node_row
     j = node_row + max_row_al - 2
     coordinate_node = "as" + CStr(i) + ":as" + CStr(j)
     
     '打印
     'Debug.Print coordinate_node, coordinate_ah, coordinate_ak, coordinate_al
     
     '弃用
     'Columns("ah:ah").Value = Columns("ak:ak").Value
     
     '把al值粘贴到ah下面
     Range(coordinate_node).Value = Range(coordinate_al).Value
     
     '定义合并后新ah下限coordinate_node2
     Dim max_row_ah
     max_row_ah = max_row_ak + max_row_al - 1
     
     coordinate_node2 = "as" + CStr(2) + ":as" + CStr(max_row_ah)
     
     Range(coordinate_node2).RemoveDuplicates Columns:=1, Header:=xlNo
     
     '去重之后重新定义max_row_ah_new
     
     Dim max_row_ah_new
     
     max_row_ah_new = Sheets("九信直转").Range("as1048576").End(xlUp).Row
     
     Debug.Print max_row_ah_new
     
     '更新业务员数据,定义coordinate_node3 AR列
     '之前是ar,现在是bc
     coordinate_node3 = "bc" + CStr(2) + ":bc" + CStr(max_row_ah)
     Range(coordinate_node3).Value = Range(coordinate_node2).Value
     
     
     '#############################################【执行分表操作】################################################
     
     '##### 执行交易月 #####
     
     '根据业务员下标,生成交易月坐标, BE列
     coordinate_at = "be" + CStr(2) + ":be" + CStr(max_row_ah_new)
     
     Debug.Print coordinate_at
     
     '使用公式,这个月份以后要改,2.3改动了
     
      Range("BE2").Formula = "=MID(AS2,FIND(""-"",AS2,1)+1,2)"
      
      '将公式填充到一定范围
      Range("BE2").AutoFill Destination:=Range(coordinate_at)
      
      '##### 执行业务员模糊 ##### BF
     
     '根据业务员下标,生成交易月坐标, AU列
     coordinate_au = "bf" + CStr(2) + ":bf" + CStr(max_row_ah_new)
     
     '使用公式
      Range("bf2").Formula = "=$BG$1&BC2"
      
      '将公式填充到一定范围
      Range("bf2").AutoFill Destination:=Range(coordinate_au)

     '##### 执行业务流量 #####
     
     '根据业务员下标,生成流量坐标, AN列
     coordinate_an = "AY" + CStr(2) + ":AY" + CStr(max_row_ah_new)
     
     '使用公式
      Range("aY2").Formula = "=SUMIFS($C:$C,$BK:$BK,BC2,$AK:$AK,BE2)+SUMIFS($C:$C,$BL:$BL,BC2,$AK:$AK,BE2)"
      
      '将公式填充到一定范围
      Range("aY2").AutoFill Destination:=Range(coordinate_an)
      
      
     '##### 执行业务笔数 #####
     
     '根据业务员下标,生成业务笔数坐标, AO列
     coordinate_ao = "AZ" + CStr(2) + ":AZ" + CStr(max_row_ah_new)
     
     '使用公式
      Range("AZ2").Formula = "=COUNTIF(AO:AO,BF2)+COUNTIF(AP:AP,BF2)"
      
      '将公式填充到一定范围
      Range("az2").AutoFill Destination:=Range(coordinate_ao)
     

     '##### 执行提成金额 #####
     
     '根据业务员下标,生成提成金额坐标, AP列
     coordinate_ap = "ba" + CStr(2) + ":ba" + CStr(max_row_ah_new)
     
     '使用公式
      Range("ba2").Formula = "=SUMIFS($AE:$AE,$BK:$BK,BC2,$AK:$AK,BE2)+SUMIFS($AG:$AG,$BL:$BL,BC2,$AK:$AK,BE2)"
      
      '将公式填充到一定范围
      Range("ba2").AutoFill Destination:=Range(coordinate_ap)
      
      '##### 执行创收金额 #####
     
     '根据业务员下标,生成创收金额坐标, AQ列
     coordinate_aq = "bb" + CStr(2) + ":bb" + CStr(max_row_ah_new)
     
     '使用公式
      Range("bb2").Formula = "=SUMIFS($AI:$AI,$BK:$BK,BC2,$AK:$AK,BE2)+SUMIFS($AJ:$AJ,$BL:$BL,BC2,$AK:$AK,BE2)"
      
      '将公式填充到一定范围
      Range("bb2").AutoFill Destination:=Range(coordinate_aq)
      
      
     '##### 执行 输入业务表名  #####
     
     '根据业务员下标,生成业务表坐标, bd列
     coordinate_as = "bd" + CStr(2) + ":bd" + CStr(max_row_ah_new)
     
     '使用公式
      Range("bd2").Formula = "九信直转数据"
      
      '将公式填充到一定范围
      Range("bd2").AutoFill Destination:=Range(coordinate_as)
        
      
      
      
     '##### 最后将分表数据贴在汇总数据表 #####
     
     
     '【重要!!!】如果是需要继续追加
     '获取已有汇总表的数据的底行
     
     '确定九信直转表矩形区域范围 ay 到 be
     coordinate_zgc_ant = "ay" + CStr(2) + ":be" + CStr(max_row_ah_new)
     
     Sheets("业务员数据盘").Activate
     
      If Range("v3") <> "" Then
      
      max_row_sum_v = Sheets("业务员数据盘").Range("v1048576").End(xlUp).Row
     
     '拼接节点 max_row_sum_v_new
     
     max_row_sum_v_new = max_row_sum_v + 1
     
     ' 注意是-2
     jiaduan = max_row_ah_new - 2
     
     '确定汇总表矩形区域范围
     coordinate_sum_vab = "v" + CStr(max_row_sum_v_new) + ":ab" + CStr(max_row_sum_v_new + jiaduan)
     
     Sheets("业务员数据盘").Activate
     
     Sheets("业务员数据盘").Range(coordinate_sum_vab).Value = Sheets("九信直转").Range(coordinate_zgc_ant).Value
     
     
     
     Else '【重要!!!】如果是新写
     
     '确定华林表矩形区域范围
     coordinate_zgc_ant = "ay" + CStr(2) + ":be" + CStr(max_row_ah_new)
     
     '确定汇总表矩形区域范围
     coordinate_sum_vab = "v" + CStr(3) + ":ab" + CStr(max_row_ah_new + 1)
     
     Sheets("业务员数据盘").Activate
     
     Sheets("业务员数据盘").Range(coordinate_sum_vab).Value = Sheets("九信直转").Range(coordinate_zgc_ant).Value
      
      
     
     
     
      
     
     
     
      
      End If
     
      
      
     
     '##### 耗时和保存 #####
     
     '跳回汇总盘页面
      Sheets("业务员数据盘").Activate
      
      
     '程序结束时间
      MsgBox "执行九信直转程序耗时:" & Format(Now() - tm, "hh:mm:ss")
      
      Debug.Print "执行九信直转程序耗时:" & Format(Now() - tm, "hh:mm:ss")
      
      '保存
      Workbooks("【修订7】2021年直转+转转.xlsm").Save
      
      End If
      
    
      
End Sub

Sub step4_执行直转卖转贴()


    '【重要】先看汇总盘页面是否已经有该数据
     
     Sheets("业务员数据盘").Activate
     
     '如果有,先声明,不要操作
      
     If Range("AG2") <> 0 Then
     
     Range("AG3").Value = Range("AG4").Value
     
     MsgBox "你重复执行直转(卖转贴)了,请执行其他操作"
     
     Else
     
     Sheets("直转(卖转贴)").Activate
     
     '程序开始时间
     Dim tm
     tm = Now()
     

      '#############################################【执行前置操作】################################################

      
      '##### 直转不用收票, ai列不用执行#####
      
      
      '获取笔数底行
      max_row_a = Sheets("直转(卖转贴)").Range("A1048576").End(xlUp).Row
      
      
      '##### 执行出票创收金额列 #####
      
      coordinate_y = "aj" + CStr(2) + ":aj" + CStr(max_row_a)
      
      '使用公式
      Range("aj2").Formula = "=Z2-AB2-AG2"
      
      '将公式填充到一定范围
      Range("aj2").AutoFill Destination:=Range(coordinate_y)
      
  
      
   
      '##### 执行交易月份列 #####
      
      coordinate_z = "ak" + CStr(2) + ":ak" + CStr(max_row_a)
      
      '使用公式
      Range("ak2").Formula = "=IF(VALUE(TEXT(MONTH(H2),""0""))<10,""0""&TEXT(MONTH(H2),""0""),TEXT(MONTH(H2),""0""))"
      
      '将公式填充到一定范围
      Range("ak2").AutoFill Destination:=Range(coordinate_z)
     
     
         
      '##### 过渡带月份的业务员 #####
      
      '新收票 bk, 不用执行
      
      'coordinate_bk = "bk" + CStr(2) + ":bk" + CStr(max_row_a)
      
      '使用公式
      'Range("bk2").Formula = "=AD2&$BM$1&AK2"
      
      '将公式填充到一定范围
      'Range("bk2").AutoFill Destination:=Range(coordinate_bk)
      
      '新出票 bl
      
      coordinate_bl = "bl" + CStr(2) + ":bl" + CStr(max_row_a)
      
      '使用公式
      Range("bl2").Formula = "=AF2&$BM$1&AK2"
      
      '将公式填充到一定范围
      Range("bl2").AutoFill Destination:=Range(coordinate_bl)
      
      
     

     '##### 执行拼接1 #####
      
      coordinate_ab = "am" + CStr(2) + ":am" + CStr(max_row_a)
      
      '使用公式
      Range("am2").Formula = "=A2&BK2"
      
      '将公式填充到一定范围
      Range("am2").AutoFill Destination:=Range(coordinate_ab)
      
       '##### 执行拼接2 #####
      
      coordinate_ac = "an" + CStr(2) + ":an" + CStr(max_row_a)
      
      '使用公式
      Range("an2").Formula = "=A2&BL2"
      
      '将公式填充到一定范围
      Range("an2").AutoFill Destination:=Range(coordinate_ac)
      
      
      '##### 执行拼接1去重 #####
      
      '先复制值到ad
      coordinate_ad = "ao" + CStr(2) + ":ao" + CStr(max_row_a)
      Range(coordinate_ad).Value = Range(coordinate_ab).Value
      
      '使用公式,这是不行的,还是要直接去重
      'Range("ad2").Formula = "=INDEX(AB:AB,1+MATCH(,COUNTIF(AD$1:AD1,AB$2:AB$1000),))&"""
      
      Range(coordinate_ad).RemoveDuplicates Columns:=1, Header:=xlNo
      
     '##### 执行拼接2去重 #####
      
      '先复制值到ae
      coordinate_ae = "ap" + CStr(2) + ":ap" + CStr(max_row_a)
      Range(coordinate_ae).Value = Range(coordinate_ac).Value
      
      Range(coordinate_ae).RemoveDuplicates Columns:=1, Header:=xlNo
      
      
      
      '#############################################【执行业务员操作】################################################
      
       '##### 判断业务员
   
      '复制收票人 bk复制到av
      Columns("av:av").Value = Columns("bk:bk").Value
      '复制出票人 bl复制到aw
      Columns("aw:aw").Value = Columns("bl:bl").Value
      
      '收票人去重
      Range("av:av").RemoveDuplicates Columns:=1, Header:=xlNo
      '出票人去重
      Range("aw:aw").RemoveDuplicates Columns:=1, Header:=xlNo
      
     '获取去重结果的底行
     max_row_ak = Sheets("直转(卖转贴)").Range("av1048576").End(xlUp).Row
     max_row_al = Sheets("直转(卖转贴)").Range("aw1048576").End(xlUp).Row
     
     'Debug.Print max_row_ak
     'Debug.Print max_row_al

     
     '获得av的坐标
     Dim a, b As Long
     a = 2
     b = max_row_ak
     coordinate_ak = "av" + CStr(a) + ":av" + CStr(b)
     
     '获得aw的坐标
     Dim c, d As Long
     c = 2
     d = max_row_al
     coordinate_al = "aw" + CStr(c) + ":aw" + CStr(d)
     
     '获得as的坐标
     Dim x, y As Long
     x = 2
     y = max_row_ak
     coordinate_ah = "as" + CStr(x) + ":as" + CStr(y)
     
     '把ak原有值放到ah
     Range(coordinate_ah).Value = Range(coordinate_ak).Value
     
     '寻找关键node
     node_row = max_row_ak + 1
     
     'Debug.Print node_row
     
     Dim i, j As Long
     i = node_row
     j = node_row + max_row_al - 2
     coordinate_node = "as" + CStr(i) + ":as" + CStr(j)
     
     '打印
     'Debug.Print coordinate_node, coordinate_ah, coordinate_ak, coordinate_al
     
     '弃用
     'Columns("ah:ah").Value = Columns("ak:ak").Value
     
     '把al值粘贴到ah下面
     Range(coordinate_node).Value = Range(coordinate_al).Value
     
     '定义合并后新ah下限coordinate_node2
     Dim max_row_ah
     max_row_ah = max_row_ak + max_row_al - 1
     
     coordinate_node2 = "as" + CStr(2) + ":as" + CStr(max_row_ah)
     
     Range(coordinate_node2).RemoveDuplicates Columns:=1, Header:=xlNo
     
     '去重之后重新定义max_row_ah_new
     
     Dim max_row_ah_new
     
     max_row_ah_new = Sheets("直转(卖转贴)").Range("as1048576").End(xlUp).Row
     
     Debug.Print max_row_ah_new
     
     '更新业务员数据,定义coordinate_node3 AR列
     '之前是ar,现在是bc
     coordinate_node3 = "bc" + CStr(2) + ":bc" + CStr(max_row_ah)
     Range(coordinate_node3).Value = Range(coordinate_node2).Value
     
     
     '#############################################【执行分表操作】################################################
     
     '##### 执行交易月 #####
     
     '根据业务员下标,生成交易月坐标, BE列
     coordinate_at = "be" + CStr(2) + ":be" + CStr(max_row_ah_new)
     
     Debug.Print coordinate_at
     
     '使用公式,这个月份以后要改,2.3改动了
     
      Range("BE2").Formula = "=MID(AS2,FIND(""-"",AS2,1)+1,2)"
      
      '将公式填充到一定范围
      Range("BE2").AutoFill Destination:=Range(coordinate_at)
      
      '##### 执行业务员模糊 ##### BF
     
     '根据业务员下标,生成交易月坐标, AU列
     coordinate_au = "bf" + CStr(2) + ":bf" + CStr(max_row_ah_new)
     
     '使用公式
      Range("bf2").Formula = "=$BG$1&BC2"
      
      '将公式填充到一定范围
      Range("bf2").AutoFill Destination:=Range(coordinate_au)

     '##### 执行业务流量 #####
     
     '根据业务员下标,生成流量坐标, AN列
     coordinate_an = "AY" + CStr(2) + ":AY" + CStr(max_row_ah_new)
     
     '使用公式
      Range("aY2").Formula = "=SUMIFS($C:$C,$BK:$BK,BC2,$AK:$AK,BE2)+SUMIFS($C:$C,$BL:$BL,BC2,$AK:$AK,BE2)"
      
      '将公式填充到一定范围
      Range("aY2").AutoFill Destination:=Range(coordinate_an)
      
      
     '##### 执行业务笔数 #####
     
     '根据业务员下标,生成业务笔数坐标, AO列
     coordinate_ao = "AZ" + CStr(2) + ":AZ" + CStr(max_row_ah_new)
     
     '使用公式
      Range("AZ2").Formula = "=COUNTIF(AO:AO,BF2)+COUNTIF(AP:AP,BF2)"
      
      '将公式填充到一定范围
      Range("az2").AutoFill Destination:=Range(coordinate_ao)
     

     '##### 执行提成金额 #####
     
     '根据业务员下标,生成提成金额坐标, AP列
     coordinate_ap = "ba" + CStr(2) + ":ba" + CStr(max_row_ah_new)
     
     '使用公式
      Range("ba2").Formula = "=SUMIFS($AE:$AE,$BK:$BK,BC2,$AK:$AK,BE2)+SUMIFS($AG:$AG,$BL:$BL,BC2,$AK:$AK,BE2)"
      
      '将公式填充到一定范围
      Range("ba2").AutoFill Destination:=Range(coordinate_ap)
      
      '##### 执行创收金额 #####
     
     '根据业务员下标,生成创收金额坐标, AQ列
     coordinate_aq = "bb" + CStr(2) + ":bb" + CStr(max_row_ah_new)
     
     '使用公式
      Range("bb2").Formula = "=SUMIFS($AI:$AI,$BK:$BK,BC2,$AK:$AK,BE2)+SUMIFS($AJ:$AJ,$BL:$BL,BC2,$AK:$AK,BE2)"
      
      '将公式填充到一定范围
      Range("bb2").AutoFill Destination:=Range(coordinate_aq)
      
      
     '##### 执行 输入业务表名  #####
     
     '根据业务员下标,生成业务表坐标, bd列
     coordinate_as = "bd" + CStr(2) + ":bd" + CStr(max_row_ah_new)
     
     '使用公式
      Range("bd2").Formula = "直转(卖转贴)数据"
      
      '将公式填充到一定范围
      Range("bd2").AutoFill Destination:=Range(coordinate_as)
      
      
      
      
     '##### 最后将分表数据贴在汇总数据表 #####
     
     
     '【重要!!!】如果是需要继续追加
     '获取已有汇总表的数据的底行
     
     '确定九信直转表矩形区域范围 ay 到 be
     coordinate_zgc_ant = "ay" + CStr(2) + ":be" + CStr(max_row_ah_new)
     
     Sheets("业务员数据盘").Activate
     
      If Range("v3") <> "" Then
      
      max_row_sum_v = Sheets("业务员数据盘").Range("v1048576").End(xlUp).Row
     
     '拼接节点 max_row_sum_v_new
     
     max_row_sum_v_new = max_row_sum_v + 1
     
     ' 注意是-2
     jiaduan = max_row_ah_new - 2
     
     '确定汇总表矩形区域范围
     coordinate_sum_vab = "v" + CStr(max_row_sum_v_new) + ":ab" + CStr(max_row_sum_v_new + jiaduan)
     
     Sheets("业务员数据盘").Activate
     
     Sheets("业务员数据盘").Range(coordinate_sum_vab).Value = Sheets("直转(卖转贴)").Range(coordinate_zgc_ant).Value
     
     
     
     Else '【重要!!!】如果是新写
     
     '确定华林表矩形区域范围
     coordinate_zgc_ant = "ay" + CStr(2) + ":be" + CStr(max_row_ah_new)
     
     '确定汇总表矩形区域范围
     coordinate_sum_vab = "v" + CStr(3) + ":ab" + CStr(max_row_ah_new + 1)
     
     Sheets("业务员数据盘").Activate
     
     Sheets("业务员数据盘").Range(coordinate_sum_vab).Value = Sheets("直转(卖转贴)").Range(coordinate_zgc_ant).Value
      
      
     
     
     
      
     
     
     
      
      End If
     
      
      
     
     '##### 耗时和保存 #####
     
     '跳回汇总盘页面
      Sheets("业务员数据盘").Activate
      
      
     '程序结束时间
      MsgBox "执行直转(卖转贴)程序耗时:" & Format(Now() - tm, "hh:mm:ss")
      
      Debug.Print "执行直转(卖转贴)程序耗时:" & Format(Now() - tm, "hh:mm:ss")
      
      '保存
      Workbooks("【修订7】2021年直转+转转.xlsm").Save
      
      End If

      
End Sub

Sub 一键全执行()

     step1_执行华林
     
     step2_执行中关村
     
     step3_执行九信直转
     
     step4_执行直转卖转贴
     
     MsgBox "全部执行完毕"

End Sub





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值