vba有哪些具体案例的应用?

vba有哪些具体案例的应用?,第1张

工作需要,自学了一点VBA,目前算是4类应用吧。

一、自定义函数。

如计算Unif,使用excel原来的公式,则Unif=(Max(range)-Min(range))/(Max(range)+Min(range)),非常麻烦。

自定义一个函数unif,则Unif=unif(range)就可以了。

二、自定义工具栏。

其实我是写一个vba程序,然后添加到工具栏,不是复杂的那种。但非常方便的。

比如使用透视表时,添加的数值中的项要么为计数项,要么为求和项的,但我平时是看平均值的,当然可以自己改,但是有时候看的项目比较多,一个个改太麻烦了。

于是,我写了程序,针对当前Activesheet中的透视表,自动将数值变为平均值。然后把这个宏添加到“设计”中,每次编辑透视表就可以点一下自动变更啦。

三、用户窗体。

这个也编了一个,按个按键,d出来一个窗体,就和软件一样,然后可以各种 *** 作。有点复杂。

四、数据汇总用的。

就是自动将多个excel合并,汇总数据什么的。一般就是建个xlam模板,然后应用。很复杂。

个人遇到的基本就是这些情况。

zhouziyan2001 ,离线解释:

Dim i As Long, j

'定义变量

For i = 1 To Sheet8.Range("a65536").End(xlUp).Row

'运算从Sheet8的第一行到第一列的最后一个有内容的单元格所在列.

'对后面内容,你可以查找END()的帮助来理解

Sheet3.Cells(i, 1).Formula = "=MATCH(Sheet8!A" &i &",Sheet1!A:A,0)"

'本句为了节省代码,直接借用了EXCEL的公式来查找符合条件的单元格所在的行

'函数MATCH就是查找函数.

'否则,要自己编写查找循环代码,由于VBA是解释执行,会导致效率很低,

'Formula就是把后面的公式写到该单元格中并运算.

j = Sheet3.Cells(i, 1): Sheet3.Cells(i, 1) = ""

'找到后将值(也就是查找到的行)传递给变量j,

If IsNumeric(j) Then

Sheet1.Cells.Rows(j).Cut

Sheet3.Rows(i).Insert

Sheet1.Cells.Rows(j).Delete

End If

'IF语句用来将该行复制,粘贴在SHEET3的相关行中,结束后将该行删除.

'如果在同一工作表中,该三行语句可简化为: Cells.Rows(j).Cut Rows(i)

Next i

'运行下一行


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11879713.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存