边学边用~没有系统的VBA知识,算法肯定不是最好的!不过VBA总得来说还是比较简单的。
发几个VBA的应用,主要是Excel练习的自动阅卷,也算是总结吧。
Rang("A2") = "2005年全年销售量统计表"
Range里面的就是单元格地址,也可以用Cells(2,1)来表示A2单元格
对日期也可以这样: Range("A2") = "1980-12-10"
对于数字,最好是这样: Range("A2").Value = 9875
此外Range集合也可以配合Formula属性,判断单元格内容。比如对于上面的例子,下面这几行效果是一样的:
Range("A2").Formula = "1980-12-10"
Range("A2").FormulaR1C1 = "1980-12-10"
If Left(ws.Name, 5) = "blank" Then msg(1) = “存在工作表Blank”
Next
这个可以扫描所有的工作表,并且工作表名称前5个字符是blank的都会判断存在blank工作表
如果是单个调用工作表函数,则必须加上Application.WorksheetFunction.
比如,以下可以求出当前工作表A1:A9区域内的平均数
Application.WorksheetFunction.Average(Range("A1:A9"))
如果是多个调用,则可以用with开域语句省去后面的(不知道是不是叫开域
)
With Application.WorksheetFunction
Range("A10").Value = .Sum(Range("A1:A9"))
Range("B10").Value = .Average(Range("A1:A9"))
end With
要注意的是函数前面有一个点!可以这样理解:点是属性值,虽然开域了,但还是要保持完整。
比如a=MsgBox ("asdf"[,buttons][,title][,helpfile,context]) 可以返回一个值,以便确定下一步怎么做
发几个VBA的应用,主要是Excel练习的自动阅卷,也算是总结吧。
1、判断单元格数据
Rang("A2") = "2005年全年销售量统计表"
Range里面的就是单元格地址,也可以用Cells(2,1)来表示A2单元格
对日期也可以这样: Range("A2") = "1980-12-10"
对于数字,最好是这样: Range("A2").Value = 9875
此外Range集合也可以配合Formula属性,判断单元格内容。比如对于上面的例子,下面这几行效果是一样的:
Range("A2").Formula = "1980-12-10"
Range("A2").FormulaR1C1 = "1980-12-10"
2、判断工作表是否存在,或者重命名是否正确
For Each ws In WorksheetsIf Left(ws.Name, 5) = "blank" Then msg(1) = “存在工作表Blank”
Next
这个可以扫描所有的工作表,并且工作表名称前5个字符是blank的都会判断存在blank工作表
如果是单个调用工作表函数,则必须加上Application.WorksheetFunction.
比如,以下可以求出当前工作表A1:A9区域内的平均数
Application.WorksheetFunction.Average(Range("A1:A9"))
如果是多个调用,则可以用with开域语句省去后面的(不知道是不是叫开域

With Application.WorksheetFunction
Range("A10").Value = .Sum(Range("A1:A9"))
Range("B10").Value = .Average(Range("A1:A9"))
end With
要注意的是函数前面有一个点!可以这样理解:点是属性值,虽然开域了,但还是要保持完整。
3、MsgBox
MsgBox “asdf”可以弹出一个提示对话框,但是如果带括号还可以返回值:比如a=MsgBox ("asdf"[,buttons][,title][,helpfile,context]) 可以返回一个值,以便确定下一步怎么做