VBA多条件选择及自动填表及计算汇报

By Mejias

注:为了防止信息泄露,数据经过处理。

业务要求:

如下有一张总表,需在B列和C列满足特定条件的情况下,把A:I列复制到“Target_dealing”表,然后在这张表新增J,K两列,J列使用EXCCEL公式显示G列和I列同行值是否相同,K列使用EXCEL公式显示F列和I列同行值是否相同,计算J列为“FALSE”(不同)的个数填入单元格M1,计算K列为“FALSE”填入单元格N1。

最后需要生成汇报:

1.G列与I列不同的个数(M1的值)

2.F列和I 列不同个数(N1的值)

3.G列与I列不同,且H列等于0.98(两者均满足)的数量。

4.G列与I列不同,且H列等于0.85(两者均满足)的数量。

5.G列与I列不同,且H列等于0.92(两者均满足)的数量。

6.G列与I列不同,且F列与I列不同(两者均满足)的数量

代码书写如下:

首先定义好所有需要的变量, 使用inputbox,在EXCEL弹出对话框输入我们需要的条件,复制表1到表2,然后循环所有行删除不符合条件的整行。

Sub auto_report()

Dim mybook As Workbook
Dim orig, target, SJ As Worksheet
Dim total, ROWC, ind As Integer '定义总行数和行标记
Dim weeknum, carrier, Carrier_code, AMAZ_code, Final_Code
Dim Score
Dim box_week, box_carrier, box_CarrierC, box_AMAZC, box_FinalC, box_Score '定义列名和单元格值

Dim marvin_num, MC_Num, marvinNE, marvinNT, marvinEF, carrier_num, THrd_num As Integer '需要汇报的最终数据
Dim JUDGE_F, JUDGE_FK '新增使用EXCEL =VALUE()=VALUE()后的列
Dim judge_marvin
Dim judgeNE
Dim judgeNT
Dim judgeEF
'上面均为定义“JUDGE_SCORE"表判断使用的单元格

Set mybook = Workbooks("AMBER REPORT AUTOREPORT.xlsm")
Set orig = Sheets("Carriers total data")
Set target = Sheets("target dealing")
Set SJ = Sheets("JUDGE_SCORE")

'copy the original list to target list
orig.Range("A:I").Copy target.Range("A:I")
'get the row count in used sheet
total = target.Range("B1").End(xlDown).Row



’使用inputbox,在EXCEL弹出对话框输入我们需要的条件,根据条件复制表1到表2
weeknum = Int(InputBox("请输入需要的weeknum"))
carrier = InputBox("请输入需要的carrier")

ind = 2
line1:
    total = total - 1
   
Do While ind <= total + 1

    box_week = target.Range("B" & ind)
    box_carrier = target.Range("D" & ind)
 
        If box_week <> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值