EXCEL的VBA编程

杨康需要我完成的需求

第一列是名称

第二列是甲方账户

第三列是甲方金额

第四列是乙方账户

第五列是乙方金额

第六列是true或false

第七列备注



需求

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

最终效果图

我的代码


Sub func() Dim pos, total, mate1 Rem 获取行数
total = Sheet1.UsedRange.Rows.Count Rem 开始循环
For pos = 2 To 66666 '66666是设置的一个极大值,实际上,当不存在交易的时候会自动跳出for循环,不会循环这么多次
If Sheet1.Cells(pos, "C").Value > Sheet1.Cells(pos, "E").Value Then '当甲的金额大于乙的金额
MsgBox "甲大!!"
Sheet1.Cells(pos, "G") = "无甲方"
Sheet1.Cells(pos, "F") = "FALSE" '改为FLASE
Range("A" & pos & ":C" & total+total).Select
Selection.Copy Range("A" & pos + 1) '移动
Range("A" & pos & ":C" & pos) = ""
Range("A" & pos & ":G" & pos).Select '选中当前的行
Set rng2 = ActiveCell.EntireRow
rng2.Interior.ColorIndex = 6 '设置高亮
ElseIf Sheet1.Cells(pos, "C").Value < Sheet1.Cells(pos, "E").Value Then '当甲的金额小于乙的金额
MsgBox "乙大!!"
Sheet1.Cells(pos, "G") = "无乙方"
Sheet1.Cells(pos, "F") = "FALSE"
Range("D" & pos & ":E" & total+total).Select
Selection.Copy Range("D" & pos + 1)
Range("D" & pos & ":E" & pos) = ""
Range("A" & pos & ":G" & pos).Select '选中当前的行
Set rng2 = ActiveCell.EntireRow
rng2.Interior.ColorIndex = 6 '设置高亮
ElseIf Sheet1.Cells(pos, "C").Value = Sheet1.Cells(pos, "E").Value And Sheet1.Cells(pos, "A").Value <> "" Then '如果甲乙账户金额相等
Sheet1.Cells(pos, "F") = "TRUE"
Else '否则就跳出循环
Exit For
End If
Next
MsgBox "完成!!"
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下的一些命令的笔记

    1.php的扩展是在 php/include/php/ext/下 2.在vi下查找关键字 在vi的命令模式下, 输入/,然后再输入关键字,回车就可以进行查找,按n则会跳到下一个关键字在的位置 3.ph ...

  2. HDU1172猜数字 [模拟]

    1.题意 任务是猜一个四位数,每次尝试后会给出这次猜中了几个数字和猜中了几个位置,求能否根据尝试的记录给出答案 2.分析 数据给出查询次数和每次查询的数及其有几个数和几个位置符合,值得注意的是,猜对的 ...

  3. PHP四大主流框架的优缺点总结

    本篇文章我们来讲讲PHP四大框架的优缺点都有哪些,让你们在开发中更好的去选择使用哪款PHP框架去完成项目,废话不多说,我们一起来看看吧!! ThinkPHP ThinkPHP(FCS)是一个轻量级的中 ...

  4. 22.json&pickle&shelve

    转载:https://www.cnblogs.com/yuanchenqi/article/5732581.html json 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不 ...

  5. Java 连接 SQL Server 数据库

    //连接数据库 public Connection getConnection(){ //url为绝对路径 String url="jdbc:sqlserver://127.0.0.1:14 ...

  6. 使用SonarQube+Eclipse来分析python代码

    背景 最近在项目中推广集成测试的理念以及相关工具,在jenkins中集成sonar去分析项目的java代码的时候,意外的发现,sonarqube上还有对应python的插件,而自己写的测试工具大部分都 ...

  7. $CF908D\ New\ Year\ and\ Arbitrary\ Arrangement$ 期望$dp$

    正解:期望$dp$ 解题报告: 传送门$QwQ$ 阿关于题目里那个形如$ab$的子序列我说下,,,我我我之前$get$了好久$QAQ$.这里子序列的个数的定义是这样儿的,举个$eg$,$aabb$,就 ...

  8. java通过freemarker模板导出pdf

    需求:将网页内容导出为pdf文件,其中包含文字,图片,echarts图 原理:利用freemarker模板与数据渲染所得到的html内容,通过ITextRenderer对象解析html内容生成pdf ...

  9. 「洛谷P3931」 SAC E#1 - 一道难题 Tree

    P3931 SAC E#1 - 一道难题 Tree 题目背景 冴月麟和魏潇承是好朋友. 题目描述 冴月麟为了守护幻想乡,而制造了幻想乡的倒影,将真实的幻想乡封印了.任何人都无法进入真实的幻想乡了,但是 ...

  10. 应急响应&&取证

    查看日志    eventvwr.exe   中了勒索病毒 1.查看download目录有没有病毒样本,C:\Users\86132\Downloads 2.查看系统开放端口 3.导出systemin ...