EXCEL的VBA编程

杨康需要我完成的需求

第一列是名称

第二列是甲方账户

第三列是甲方金额

第四列是乙方账户

第五列是乙方金额

第六列是true或false

第七列备注



需求

开始时数据对齐的,如果甲方金额比乙方金额大,就将交易名称,甲方账户,甲方金额下移一行,反之则将乙方账户,乙方金额下移一行

最终效果图

我的代码


  1. Sub func()
  2. Dim pos, total, mate1
  3. Rem 获取行数
  4. total = Sheet1.UsedRange.Rows.Count
  5. Rem 开始循环
  6. For pos = 2 To 66666 '66666是设置的一个极大值,实际上,当不存在交易的时候会自动跳出for循环,不会循环这么多次
  7. If Sheet1.Cells(pos, "C").Value > Sheet1.Cells(pos, "E").Value Then '当甲的金额大于乙的金额
  8. MsgBox "甲大!!"
  9. Sheet1.Cells(pos, "G") = "无甲方"
  10. Sheet1.Cells(pos, "F") = "FALSE" '改为FLASE
  11. Range("A" & pos & ":C" & total+total).Select
  12. Selection.Copy Range("A" & pos + 1) '移动
  13. Range("A" & pos & ":C" & pos) = ""
  14. Range("A" & pos & ":G" & pos).Select '选中当前的行
  15. Set rng2 = ActiveCell.EntireRow
  16. rng2.Interior.ColorIndex = 6 '设置高亮
  17. ElseIf Sheet1.Cells(pos, "C").Value < Sheet1.Cells(pos, "E").Value Then '当甲的金额小于乙的金额
  18. MsgBox "乙大!!"
  19. Sheet1.Cells(pos, "G") = "无乙方"
  20. Sheet1.Cells(pos, "F") = "FALSE"
  21. Range("D" & pos & ":E" & total+total).Select
  22. Selection.Copy Range("D" & pos + 1)
  23. Range("D" & pos & ":E" & pos) = ""
  24. Range("A" & pos & ":G" & pos).Select '选中当前的行
  25. Set rng2 = ActiveCell.EntireRow
  26. rng2.Interior.ColorIndex = 6 '设置高亮
  27. ElseIf Sheet1.Cells(pos, "C").Value = Sheet1.Cells(pos, "E").Value And Sheet1.Cells(pos, "A").Value <> "" Then '如果甲乙账户金额相等
  28. Sheet1.Cells(pos, "F") = "TRUE"
  29. Else '否则就跳出循环
  30. Exit For
  31. End If
  32. Next
  33. MsgBox "完成!!"
  34. End Sub

效果图

EXCEL的VBA(宏)编程的更多相关文章

  1. C#调用Excel VBA宏

    近日的一系列工作是做网站的营运维护,因此做了大量的支持工具.有Excel中写VBA的,也有直接C#做的工具.有时需要在C#中执行Excel VBA宏,甚至有时还需要在执行了VBA宏之后,获取返回值再进 ...

  2. [转]C#调用Excel VBA宏

    [转载自]http://www.shangxueba.com/jingyan/95031.html 附上一段原创常用代码 计算列标题字符串 Function CalcColumn(ByVal c As ...

  3. Excel 导出指定行为txt文件(VBA,宏)

    要从Excel 多个sheet内导出指定行为txt文件,懒得用C#了,写个VBA宏 Sub Export() Dim FileName As Variant Dim Sep As String Dim ...

  4. C#调用Excel VBA宏[转载]

    原文地址:https://www.cnblogs.com/heekui/archive/2008/03/30/1129355.html 近日的一系列工作是做网站的营运维护,因此做了大量的支持工具.有E ...

  5. 功能区按钮调用Excel、PowerPoint、Word中的VBA宏:RunMacro

    功能区按钮调用Excel.PowerPoint.Word中的VBA宏:RunMacro 众所周知,Excel.PPT.Word文档或加载宏文件中可以写很多过程和函数,调试的过程中当然可以按F8或F5直 ...

  6. 【VBA】EXCEL通过VBA生成SQL,自动生成创建表结构SQL

    原文:https://blog.csdn.net/zutsoft/article/details/45441343 编程往往与数据库密不可分,一个项目往往有很多的表,很多时候通过excel来维护表结构 ...

  7. 用VBA宏从一个工作薄复制内容到另一个工作薄

    我们项目管理有两个工作薄,一个里面有多个表,每天建一个,记录当天项目,另一个工作薄,有多个表,其中一个是所有项目汇总. 以前都是第一个工作薄一个表做完,再复制粘贴到第二个工作薄的汇总表中. 写了个VB ...

  8. 利用VBA宏批量解决Word中图片大小、居中设置

    需求:经常阅读网上的研报(没钱买排版漂亮的高质量研报),有些需要保存的复制下来到word里,图片很大都超出word的边界了,也没有居中,手工一张张调整不现实,上百页的研报,几十张图片. 解决方案:利用 ...

  9. Office宏病毒学习第一弹--恶意的Excel 4.0宏

    Office宏病毒学习第一弹--恶意的Excel 4.0宏 前言 参考:https://outflank.nl/blog/2018/10/06/old-school-evil-excel-4-0-ma ...

随机推荐

  1. 在linux下find和grep

    在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 find命令的一般形式 ...

  2. Eclipse 代码快捷键模板(一)

    话不多说,自行google. 设置快捷键,打开eclipse,依次打开:Window -> Preferences -> General -> Key. 设置代码快捷键,打卡ecli ...

  3. knn识别简单验证码

    参考 https://www.biaodianfu.com/knn-captcha-recognition.html 内容大致一样,只是根据自己的想法加入了一些改动 KNN(k近邻算法) 算法原理请看 ...

  4. CEF编译遇到的问题记录

    在使用vs2015编译cef官方代码的时候遇到很奇怪的问题, 我用官方的demo cefsimple例子程序编译debug版本 可以正常编译打开网页 正常的打开 我把官方的例子单独创建一个新的项目编译 ...

  5. 【题解】LOJ2759. 「JOI 2014 Final」飞天鼠(最短路)

    [题解]LOJ2759. 「JOI 2014 Final」飞天鼠(最短路) 考虑最终答案的构成,一定是由很多飞行+一些上升+一些下降构成. 由于在任何一个点上升或者下降代价是一样的,所以: 对于上升操 ...

  6. $HNOI2012\ $ 集合选数 状压$dp$

    \(Des\) 求对于正整数\(n\leq 1e5\),{\(1,2,3,...,n\)}的满足约束条件:"若\(x\)在该子集中,则\(2x\)和\(3x\)不在该子集中."的子 ...

  7. linux MySQL 5.7.20安装教程

    安装MySQL 5.7.20shell> cd /usr/localshell> groupadd mysqlshell> useradd -g mysql mysqlshell&g ...

  8. 《美国纽约摄影学院摄影教材》PDF教材

        下载地址: 美国纽约摄影学院摄影教材(上册).pdf 美国纽约摄影学院摄影教材(下册).pdf 欢迎你到纽约摄影学院来,我们急切地等待着开课,你们也在 跃跃欲试了.那就让我们马上开始吧! 你已 ...

  9. vue入门,vue指令,vue组件,vue模板

    vue 使用虚拟dom操作减少真实dom操作 提高页面的渲染效率 虚拟dom的本质就是内存中的一个对象,该对象和dom结构相互对应 将开发者经历从dom中释放出来,转移到数据的操作 开发者不需要关注页 ...

  10. 突破CRUD | 简单优雅的代码生成工具诞生记(万字长文慎入)

    0.学习本文你或许可以收获 1.一个需求从产生.分析到解决的全过程思考2.简单的面向对象分析实践3.UML类图实践4.设计模式的实践应用5.最后收获一款还算不错的代码生成工具实现思路和源代码 本文将从 ...