ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 563|回复: 0

如何简化红色重复代码,这只是例子,下边还好多重复的,程序已经提示工程太大,求高手

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-29 14:45 | 显示全部楼层 |阅读模式
Private Sub cmd查询_Click()

'铜

  ListView1.ListItems.Clear
  ListView1.ColumnHeaders.Clear

  Dim Itm As ListItem, i As Integer, r As Integer, h As Integer, g As Integer, t As Integer



  With ListView1

            .ColumnHeaders.Add , , "序号", ListView1.Width / 25
            .ColumnHeaders.Add , , "合同号", ListView1.Width / 10, 2
            .ColumnHeaders.Add , , "结算品位", ListView1.Width / 15, 2
            .ColumnHeaders.Add , , "中心品位", ListView1.Width / 15, 2
            .ColumnHeaders.Add , , "冶炼厂品位", ListView1.Width / 15, 2
            .ColumnHeaders.Add , , "结算金属量", ListView1.Width / 12, 1
            .ColumnHeaders.Add , , "中心金属量", ListView1.Width / 12, 1
            .ColumnHeaders.Add , , "冶炼厂金属量", ListView1.Width / 11, 2
            .ColumnHeaders.Add , , "结算与冶炼厂量差", ListView1.Width / 8, 2
            .ColumnHeaders.Add , , "量差比率", ListView1.Width / 15, 2
            .ColumnHeaders.Add , , "财务核销量", ListView1.Width / 12, 1
            .ColumnHeaders.Add , , "冶炼厂调整量", ListView1.Width / 11, 1


     '组合:铜精矿=1,粗铜=2,侯马=3,垣曲=4,已调差合计=5,未调差合计=6


     '123

     If chk铜精矿 = True And chk粗铜 = True And chk侯马 = True And chk垣曲 = False And chk已调差合计 = False And chk未调差合计 = False Then


          For i = 1 To ThisWorkbook.Worksheets.Count
            If Sheets(i).Range("c16") = "侯马" Then
            sss

           End If
         Next

    '124

    ElseIf chk铜精矿 = True And chk粗铜 = True And chk侯马 = False And chk垣曲 = True And chk已调差合计 = False And chk未调差合计 = False Then


          For i = 1 To ThisWorkbook.Worksheets.Count
            If Sheets(i).Range("c16") = "垣曲" Then
            Set Itm = ListView1.ListItems.Add()
     
             Itm.SubItems(1) = Sheets(i).Range("c1")
             Itm.SubItems(2) = Format(Sheets(i).Range("c374"), "##,##0.00%")
             Itm.SubItems(3) = Format(Sheets(i).Range("c480"), "##,##0.00%")
             Itm.SubItems(4) = Format(Sheets(i).Range("c498"), "##,##0.00%")
             Itm.SubItems(5) = Format(WorksheetFunction.Sum(Sheets(i).Range("c452:i452")), "##,##0.000")
             Itm.SubItems(6) = Format(WorksheetFunction.Sum(Sheets(i).Range("c481:i481")), "##,##0.000")
             Itm.SubItems(7) = Format(WorksheetFunction.Sum(Sheets(i).Range("c499:i499")), "##,##0.000")
             Itm.SubItems(8) = Format(WorksheetFunction.Sum(Sheets(i).Range("c523:i523")), "##,##0.000")
             Itm.SubItems(9) = Format(WorksheetFunction.Sum(Sheets(i).Range("j526")), "##,##0.00%")
             Itm.SubItems(10) = Format(WorksheetFunction.Sum(Sheets(i).Range("c525:i525")), "##,##0.000")
             Itm.SubItems(11) = Format(WorksheetFunction.Sum(Sheets(i).Range("c524:i524")), "##,##0.000")

           End If
         Next

     '125

     ElseIf chk铜精矿 = True And chk粗铜 = True And chk侯马 = False And chk垣曲 = False And chk已调差合计 = True And chk未调差合计 = False Then


          For i = 1 To ThisWorkbook.Worksheets.Count
            If Sheets(i).Range("j524") > 0 Then
            Set Itm = ListView1.ListItems.Add()
     
             Itm.SubItems(1) = Sheets(i).Range("c1")
             Itm.SubItems(2) = Format(Sheets(i).Range("c374"), "##,##0.00%")
             Itm.SubItems(3) = Format(Sheets(i).Range("c480"), "##,##0.00%")
             Itm.SubItems(4) = Format(Sheets(i).Range("c498"), "##,##0.00%")
             Itm.SubItems(5) = Format(WorksheetFunction.Sum(Sheets(i).Range("c452:i452")), "##,##0.000")
             Itm.SubItems(6) = Format(WorksheetFunction.Sum(Sheets(i).Range("c481:i481")), "##,##0.000")
             Itm.SubItems(7) = Format(WorksheetFunction.Sum(Sheets(i).Range("c499:i499")), "##,##0.000")
             Itm.SubItems(8) = Format(WorksheetFunction.Sum(Sheets(i).Range("c523:i523")), "##,##0.000")
             Itm.SubItems(9) = Format(WorksheetFunction.Sum(Sheets(i).Range("j526")), "##,##0.00%")
             Itm.SubItems(10) = Format(WorksheetFunction.Sum(Sheets(i).Range("c525:i525")), "##,##0.000")
             Itm.SubItems(11) = Format(WorksheetFunction.Sum(Sheets(i).Range("c524:i524")), "##,##0.000")

           End If
         Next


您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-11 04:05 , Processed in 0.016405 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表