Err 对象
Err 对象是一个具有全局范围 —的固有对象:不必在您的代码中创建它的示例。Err的属性被一个错误的生成器设置:Visual Basic自动对象,或 VBScript程序。err对象含有关于运行时错误的信息。接受用于生成和清除运行时错误的Raise 和Clear方法。当发生运行时错误时,Err的属性由标识错误的唯一信息以及可用于处理它的信息填充。要在代码中生成运行时错误,请用Raise方法。
Err 对象的属性
Number 属性 错误号。Number 是 Err 对象的默认属性,可读可写。语法:
err.Number [= errornumber]
Description 属性 返回或设置与错误相关联的说明性字符串。语法:
err.Description [= stringexpression]
Source 属性 返回或设置最初生成错误的对象或应用程序的名称。语法:
err.Source [= stringexpression]
HelpFile 属性 设置或返回帮助文件的完整有效路径。 语法:
err.HelpFile [= contextID]
contextID是帮助文件的完整有效路径。
HelpContext 属性 设置或返回帮助文件主题的上下文 ID。语法:
err.HelpContext [= contextID]
contextID是在帮助文件中帮助主题的有效标识符。
Err 对象的方法
Raise方法 生成运行时错误。语法:
err.Raise(number, source, description, helpfile, helpcontext)
number是错误号,长整数子类型。VBScript 错误有VBScript
定义和用户定义两种错误,错误号的范围在0-65535 之间。number参数是必须的,其它参数是可选的,用来设置err对象的某属性。如果不指定某些参数且Err对象的属性设置含有未清除的值,则这些值将成为错误的值。
Clear 方法 清除 Err 对象的所有属性设置。语法:
err.Clear
在错误处理后,使用Clear 显式地清除Err 对象,此操作是必须的,在任何时候执行下列语句,VBScript 将自动调用 Clear 方法:
On Error Resume Next
Exit Sub
Exit Function
例程1 生成并显示第6号错误。
代码
On Error Resume Next
Err.Raise 6 '发生溢出错误。
MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description)
Err.Clear ' 清除错误。
例程2 建立用户自己的错误号和错误信息。
代码:
On Error Resume Next
Err.Raise vbObjectError + 1, "SomeObject" ' 产生对象错误 #1.
MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description & " " & Err.source)
Err.Clear ' 清除错误。
运行:
代码注释
例程1演示的是VBScript定义的错误,而例程2演示的是用户定义的错误。
目标任务 把VBScript定义的前100个错误信息显示出来。
代码
sub showErr(i)
On Error Resume Next
Err.Raise i
document.write ("Error # " & CStr(Err.Number)&" "& Err.Description & " ")
Err.Clear
End sub
for i =0 to 100
showErr i
next
对比 Javascript中做不到这一点。
参考 On Error语句
On Error启动错误处理程序。语法:
On Error Resume Next
若不使用On Error语句,发生的任何运行时错误都将是致命的,即显示错误信息并终止运行。On
Error 会使程序从紧随产生错误的语句之后的语句继续执行,或是从紧随最近一次调用过程(该过程含有On Error 语句)的语句继续运行。这个语句可以不顾运行时错误,继续执行程序,之后您可以在过程内部建立错误处理例程。在调用另一个过程时,On Error语句变为非活动的。所以,如果希望在例程中进行内部错误处理,则应在每一个调用的例程中执行On Error语句。
(一) 使用动态创建的方法
首先创建 Excel 对象,使用ComObj:
oExcel = CreateObject( "Excel.Application" )
1) 显示当前窗口:
oExcel.Visible = True
2) 更改 Excel 标题栏:
oExcel.Caption = "应用程序调用 Microsoft Excel"
3) 添加新工作簿:
oExcel.WorkBooks.Add
4) 打开已存在的工作簿:
oExcel.WorkBooks.Open( "C:\Excel\Demo.xls" )
5) 设置第2个工作表为活动工作表:
oExcel.WorkSheets(2).Activate
或
oExcel.WorksSheets( "Sheet2" ).Activate
6) 给单元格赋值:
oExcel.Cells(1,4).Value = "第一行第四列"
7) 设置指定列的宽度(单位:字符个数),以第一列为例:
oExcel.ActiveSheet.Columns(1).ColumnsWidth = 5
8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
oExcel.ActiveSheet.Rows(2).RowHeight = 1/0.035 ' 1厘米
9) 在第8行之前插入分页符:
oExcel.WorkSheets(1).Rows(8).PageBreak = 1
10) 在第8列之前删除分页符:
oExcel.ActiveSheet.Columns(4).PageBreak = 0
11) 指定边框线宽度:
oExcel.ActiveSheet.Range( "B3:D4" ).Borders(2).Weight = 3
1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )
12) 清除第一行第四列单元格公式:
oExcel.ActiveSheet.Cells(1,4).ClearContents
13) 设置第一行字体属性:
oExcel.ActiveSheet.Rows(1).Font.Name = "隶书"
oExcel.ActiveSheet.Rows(1).Font.Color = clBlue
oExcel.ActiveSheet.Rows(1).Font.Bold = True
oExcel.ActiveSheet.Rows(1).Font.UnderLine = True
14) 进行页面设置:
a.页眉:
oExcel.ActiveSheet.PageSetup.CenterHeader = "报表演示"
b.页脚:
oExcel.ActiveSheet.PageSetup.CenterFooter = "第&P页"
c.页眉到顶端边距2cm:
oExcel.ActiveSheet.PageSetup.HeaderMargin = 2/0.035
d.页脚到底端边距3cm:
oExcel.ActiveSheet.PageSetup.HeaderMargin = 3/0.035
e.顶边距2cm:
oExcel.ActiveSheet.PageSetup.TopMargin = 2/0.035
f.底边距2cm:
oExcel.ActiveSheet.PageSetup.BottomMargin = 2/0.035
g.左边距2cm:
oExcel.ActiveSheet.PageSetup.LeftMargin = 2/0.035
h.右边距2cm:
oExcel.ActiveSheet.PageSetup.RightMargin = 2/0.035
i.页面水平居中:
oExcel.ActiveSheet.PageSetup.CenterHorizontally = 2/0.035
j.页面垂直居中:
oExcel.ActiveSheet.PageSetup.CenterVertically = 2/0.035
k.打印单元格网线:
oExcel.ActiveSheet.PageSetup.PrintGridLines = True
15) 拷贝操作:
a.拷贝整个工作表:
oExcel.ActiveSheet.Used.Range.Copy
b.拷贝指定区域:
oExcel.ActiveSheet.Range( "A1:E2" ).Copy
c.从A1位置开始粘贴:
oExcel.ActiveSheet.Range.( "A1" ).PasteSpecial
d.从文件尾部开始粘贴:
oExcel.ActiveSheet.Range.PasteSpecial
16) 插入一行或一列:
a. oExcel.ActiveSheet.Rows(2).Insert
b. oExcel.ActiveSheet.Columns(1).Insert
17) 删除一行或一列:
a. oExcel.ActiveSheet.Rows(2).Delete
b. oExcel.ActiveSheet.Columns(1).Delete
18) 打印预览工作表:
oExcel.ActiveSheet.PrintPreview
19) 打印输出工作表:
oExcel.ActiveSheet.PrintOut
20) 工作表保存:
if not oExcel.ActiveWorkBook.Saved then
oExcel.ActiveSheet.PrintPreview
21) 工作表另存为:
oExcel.SaveAs( "C:\Excel\Demo1.xls" )
22) 放弃存盘:
oExcel.ActiveWorkBook.Saved = True
23) 关闭工作簿:
oExcel.WorkBooks.Close
24) 退出 Excel:
oExcel.Quit
(二) 使用VBS 控制Excle二维图
1)选择当第一个工作薄第一个工作表
set Sheet=oExcel.Workbooks(1).Worksheets(1)
2)增加一个二维图
achart=oSheet.chartobjects.add(100,100,200,200)
3)选择二维图的形态
achart.chart.charttype=4
4)给二维图赋值
set series=achart.chart.seriescollection
range="sheet1!r2c3:r3c9"
series.add range,true
5)加上二维图的标题
achart.Chart.HasTitle=True
achart.Chart.ChartTitle.Characters.Text=" Excle二维图"
6)改变二维图的标题字体大小
achart.Chart.ChartTitle.Font.size=18
7)给二维图加下标说明
achart.Chart.Axes(xlCategory, xlPrimary).HasTitle = True
achart.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "下标说明"
8)给二维图加左标说明
achart.Chart.Axes(xlValue, xlPrimary).HasTitle = True
achart.Chart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "左标说明"
9)给二维图加右标说明
achart.Chart.Axes(xlValue, xlSecondary).HasTitle = True
achart.Chart.Axes(xlValue, xlSecondary).AxisTitle.Characters.Text = "右标说明"
10)改变二维图的显示区大小
achart.Chart.PlotArea.Left = 5
achart.Chart.PlotArea.Width = 223
achart.Chart.PlotArea.Height = 108