用VBA写一个计算器

Posted 木鸟飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用VBA写一个计算器相关的知识,希望对你有一定的参考价值。

着急的 玩家 可以 跳过“============”部分

======================================可以跳过的 部分   开始======================================================

之所以 要有今天这样一篇博客是因为。

之前领导让找几组数据。从excel表格里面。

要求是 主号码 一致,副号码 一致,名称为 XXX 的 项目发生变化的数据 需要被找到。

这样的 项目 有 11个。

我找的真的是眼要花。

变动前一个表格 (命名为A),变动后一个表格(命名为B)。

数据的体量是 6w+条数据*180列。

 

我的做法是,利用 过滤器,找到 XXX项目 变化前的值 在表格A中。(好在 这11个项目,每个项目中的数据的种类都很少,最多的也不过22个。六万条数据能只有22个可能值还真的是挺幸福的。)

然后找到 其对应的 主号码。

然后 找到 XXX项目变化后的值,在 表格B中。假设数据没有发生变化,去重之后,两个表格数据中的值应该是一样的。

反之如果 数据发生了变化,那么 表格B中的值一定比A中的值多。

这样找到B的值,主号码 跟 副号码 提取出来就可以了。

(领导要做的是,找到 一组就可以。)

那么这一组一定是。

 

 

(TODO可以再加一步验证。)

 

还有什么可能性?!~

 

假设等值变换。假设变换前的数据集里面有 123,变化后的数据集里面也只有123.我们能肯定地说,没有数值变化么!?~

不能,有可能有一条数据从 1 变成了 1以外的数据(比如变成了2或者变成了3)。

 

于是当时 我就 在 反复的 做这样的工作。

 

找到XXX项目,找到变化前的项目的值 x,然后 得到他的 主副号码,然后 找到 XXX项目 在 表格B中 x以外的值, 然后得到他的主副号码。

如果 主副号码发生了重叠。说明 我找到了一条 希望的数据。

==========================================可以跳过的部分结束===================================================================

算法有了,但是 编程 还差点儿火候。。。没用过 VBA。

 

所以 说起来 好像 挺有意思的。但是 我连很多基本操作都不会。

所以,这个算是启用VBA的引子。

 

先写几个 小东西 热热手吧~~~

比如~~~最经典的 ~~~我们 先写一个 计算器~~~

哈哈哈~~~

计算器 写的 最多。

因为 计算器 用来 交互,算是 最简单也 最核心的项目了。而且 可以 反复 练习。

 

哦!之所以 能写,还是因为现在 wps也支持 VBA编程了!!!!以前只有 microsoft支持,所以国内的 小伙伴 几乎 都不太用 这个 工具的。

但是 现在 到了 日本,尤其是 大公司,限制还多的不行。下载个什么小工具 小抄件都得请示。贼烦。

表格 操作 有贼多。。。所以 ,算是个 双向选择吧~~~

 

那就 闲言少叙开始吧~~~

 

打开一个EXCEL。

1、建立我们最起始的布局。

 

2、利用EXcel内置的插入功能,拖出一个矩形框。

 

3、右键矩形图片,单击 指定宏。

4、然后 再弹出的对话框中点击,新建 按钮。

 

5、之后会有一个 VBA专用道编辑界面。

 

 

6、进行代码编辑。

 

7,试运行。

 

8,点击按钮,运行。

9,运行结果

10,为这个图形添加,文字说明。

11,最后,但也是最重要的 一步,保存成支持宏的 excel。(xlsm格式)

 

如此 便开发完成了。

下一个 文档将 实现,加减乘除功能。除法里面,当然有我们熟悉的,不能出现“0”,到时候的 对话框按钮,我们也将一起学习。

代码 样例:

Sub 矩形1_Click()
\'
\' 矩形1_Click Macro
\' 代码编辑

    Dim number1 As Integer
    Dim number2 As Integer
    


    number1 = Cells(5, 4)
    number2 = Cells(6, 4)
    
    Cells(7, 4) = number1 + number2


    
End Sub

 

以上是关于用VBA写一个计算器的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL VBA 函数Msgbox应用

在VBA中,怎么用代码判断一个excel文本是不是打开

VBA:Variant/Double 和 Double 之间的区别

准时下班系列!Excel合集之第2集—VBA填充百万行公式,怎么写最快

csv转excel,用vba实现

vba中怎么用代码将单元格内容转换为文本类型?