lnxxnchzyl 发表于 2009-10-19 09:50:49

VBA实用代码(欢迎接龙)

VBA实用代码(欢迎接龙)

工作中,我们经常需要实用VBA来完成我们的任务,但有时候我们并不能完全把握VBA的精髓,走了些弯路。比如,我以前判断一个表的最后一行使用的是这个办法:

i=3
do while not(isempty(sheets("工作表名").cells(i,1).value))
i=i+1
loop

结果行数就是:i-1

后来,才发现居然用一行代码就可以实现:
i = Range("A65536").End(xlUp).Row

于是,为了使我们少走弯路,提高效益,请我们都把在各自具体工作中实现某些功能的代码贡献于此。

不一定非要完整的VBA代码,主要的是为完成某项功能的VBA语句。必要的地方可以增加注释。欢迎跟帖,就像玩接龙游戏一样。众人拾柴火焰高嘛!

lnxxnchzyl 发表于 2009-10-19 09:50:59

还是先来一个:

取最后一行行号:i = Range("A65536").End(xlUp).Row

取最后一列列号:m = Range("dz1").End(xlToLeft).Column
(这是从行号类推出来的,dz列有130列,在日常使用中应该差不多了)

lnxxnchzyl 发表于 2009-10-19 09:51:12

遍历工作簿中所有表

下面的代码将在当前工作表中显示整个工作簿中所有表的表名和第一个第一个的内容

i=1
For Each m In Sheets             '遍历每个工作表
    cells(i,1)=m.name            '取工作表名
    cells(i,2)=sheets(m.name).cells(1,1)   '取工作表第一个单元格内容
    i=i+1
next

lnxxnchzyl 发表于 2009-10-19 09:51:21

求某月天数

Function tianshu(riqi As Date) As Byte
tianshu = DateSerial(Year(riqi), Month(riqi) + 1, Day(riqi)) - riqi
End Function

'求月末日期
Function yuemo(riqi As Date) As Date
yuemo = DateSerial(Year(riqi), Month(riqi) + 1, 0)
End Function

lnxxnchzyl 发表于 2009-10-19 09:51:34

获取块内字数

WORD中有“字数统计”的工具,但和WPS比起来,WORD只能对整篇文档的各类字符数进行统计,而没有对已选择的文字块内的字数统计,下面的代码可以完成这一任务:

MsgBox "块内字符:" + Str(Len(Selection))

lnxxnchzyl 发表于 2009-10-19 09:51:43

利用工作表中的公式帮助简化VBA程序

利用工作表中的公式来实现复杂的数学计算可以简化程序.
尤其是一些回归方法,用程序实现的时候往往需要几重循环嵌套,要用数组,程序要写得比较复杂的.
我们可以,在工作表中的固定地方作为数据输入区域,用公式实现计算,结果显示在另一个固定区域.
每次计算的时候只要用程序实现把数据复制到输入区域中的对应单元格,然后马上能到结果区域中拿结果了.所有计算的步骤都不用程序实现,用Excel公式帮你搞定了.

lnxxnchzyl 发表于 2009-10-19 09:51:56

对头,关于公式的运用可以再开一帖专门讨论,其实哥哥已经弄了一个,可惜没有跟上帖,原来是置顶的,怎么沉了?其实该继续置顶,我设想的常置顶包括这些内容:
1、Word、Excel、Access、PowerPoint等常用Office组件的独门技巧接龙
2、VBA实用代码(不仅仅是Excel,涵盖包括Word、Access等所有的Office组件的VBA应用
3、Excel公式(函数)运用旨要(就是哥哥原来那个函数集合,望继续置顶)

当然,这里还是讨论VBA的,望各位接下去啊
页: [1]
查看完整版本: VBA实用代码(欢迎接龙)