当前位置: 代码迷 >> 综合 >> 几个Excel自动阅卷的VBA(1)
  详细解决方案

几个Excel自动阅卷的VBA(1)

热度:89   发布时间:2024-01-20 05:17:34.0
边学边用~没有系统的VBA知识,算法肯定不是最好的!不过VBA总得来说还是比较简单的。
发几个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 Worksheets
        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
要注意的是函数前面有一个点!可以这样理解:点是属性值,虽然开域了,但还是要保持完整。

3、MsgBox

MsgBox “asdf”可以弹出一个提示对话框,但是如果带括号还可以返回值:
比如a=MsgBox ("asdf"[,buttons][,title][,helpfile,context]) 可以返回一个值,以便确定下一步怎么做
  相关解决方案