Excel VBA的语法就不多说了, 从最重要的Application开始 Application对象代表Excel程序本身, 对Application的操作会直接影响Excel程序 废话不多说, 直接上代码 先来介绍一下Application的常用属性: 1.ActiveCell 当前激活的(1个)单元格, 一个Range对象, 注意是一个格子
从完整写法Application.ActiveWindow.ActiveCell看出, 意思是Excel的当前有一个活动的窗口(工作簿), 里面要有一个表(工作表), 然后要有一个激活的单元格 获取到单元格的Range对象就能对其进行操作了:(语法就不介绍了) 把(1个)格子的内容设置为'哈哈', 加粗,斜体,字号182. Selection 基本概念和ActiveCell类似, 与之不同的是Selection可以表示多个单元格, 依然是一个Range对象
3.ActiveWorkbook 当前激活的一个工作簿,是一个Workbook对象
如果当前的Excel是空的, 就是说没有打开任何一个Workbook(工作簿) 上面的wb会是Nothing (VBA里的空) 每个Workbook对象都有一个Application属性, 貌似(Excel对象都有这个属性), 表示该对象所属的Application(这个Application是对象)
4.Workbooks, Worksheets, Sheets Application.Workbooks用于获取当前打开的(多个)工作簿 Applicaton.Sheets用于获取当前(激活的)工作簿下的所有工作表, 包括图表(Chart)
5. Caption 这个顾名思义, 标题, 而且是Application的Caption, 修改一下试试吧 Application.Caption = 'Haha' 注意一点, 这个可是没有'懒人写法'的 试试下面这个
标题复原了.OK 6. Range 上面在提到ActiveCell时说过Range, ActiveCell是一个Range对象, 这里的Range是一个属性, 但它同时也是一个Range对象, 是不是有点晕. 别担心 可以把Application.Range理解为一个方法(或者函数), Application.Range需要一个参数, 来返回参数指定的(n个)单元格, 看个例子先: Application.Range('A1').Value = 100 这句话, 把Application(就是Excel) 当前激活的Workbook(工作簿)下的激活的Worksheet(工作表)下的Range('A1') (这里就是A1单元格) 的值设置为数字100 完整写法就是: r 是一个Range对象, Application.Range('A1')返回一个Range对象, 而Application.Range本身是Application的属性再看看这个: Application.Range('A1:B2').Value = 'Haha' 也许你会问, 这样用Range属性太麻烦了 ,还必须有前面激活的工作簿,工作表, 太不灵活了. 没错, Range属性不仅仅在Application下, 同样也存在于Worksheet下, OK, 聪明的你估计已经想到该怎么写了: 只要获取到了一个我想要的Worksheet对象(工作表), 我就能访问指定的范围Range(...) 当然,细心的你也许发现了:这里没有说是哪个Workbook, 没错, 这里的Workbook不是激活的那个Workbook, 而是你在写VBA程序的那个Workbook7. ScreenUpdating 屏幕更新, 用于设置是否将VBA的执行的中间结果显示在Excel表中 显然, 关闭屏幕更新, 会使得VBA的执行速度更快. 我们可以做个实验, 比较关闭前后的用时.
ScreenUpdating Disabled: 0 sec. 8. StatusBar和DisplayStatusBar Application.StatusBar就是Excel的状态栏, 而Application.DisplayStatusBar意思是否显示状态栏,一个Boolean变量
|
|