VBA开发手记

本博文,将主要记录VBA for Excel项目中遇到并解决的问题和不熟悉的知识点,不定期更新。

1.日期单元格前面加空格就变成文本了,find查找参数注意:what:=Cstr(Date),lookat:=2

2.

Function ff()
    ff = 123
    MsgBox "hello"
End Function

该函数在单元格中使用时,会先弹出 消息框 确定后,再返回 123,说明函数返回值是等该函数所有代码执行完才返回。

 3.加号与&的区别?

 112” & “34” = “1234 212” + “34” = “1234 3 
 4 
 512” & 34 = “1234 612” + 34 = 46  ‘类型自动转换
 7 
 8 
 9 “ab” & 34 = “ab34”
10 “ab” + 34 =  ‘类型自动转换失败,报错

 4.Range的不常用使用用法

1 Range("C1,D2,A1:A2").Cells.Count              '个数为4
2 Range(Cells(1, 1), Cells(1, 4)).Cells.Count    '个数为4
3 Range(Cells(1, 1))  ‘这种写法错误

 5.给单元格区域赋值的不常见写法。

1 Range("A1:B1") = [{"编号", "目录"}]    '写入标题,采用数组形式,可以一次性写入多个单元格
2. 
If [=SUM(1/COUNTIF(A1:A10,A1:A10))] < 10 Then MsgBox "区域中存在重复值,程序无法继续", vbOKOnly, "友情提示"

 6.工作表的codeName属性就是VBE中每一张工作表对象的名称,可以在自己的属性窗口中修改,用codeName可以直接代表对应的工作表对象使用。

 7.Worksheets(1).Copy 将直接生成一张未保存的工作簿,内容为Worksheets(1)

8.如果新建的工作簿未保存,则 Len(Dir(ActiveWorkbook.FullName)) = 0.

9.由于end释放一切变量(包括各种级别的变量,如:过程级,模块级等),所有a显示的始终是1

1 Sub t()
2     Static a As Byte
3     a = a + 1
4     MsgBox a
5     End
6 
7 End Sub

 10.range区域赋值给变量时,该变量下标为1.   Evaluate函数创建的数组默认下标也是1

posted @ 2019-04-24 10:32  甜麦地  阅读(166)  评论(0)    收藏  举报