VBA的工作薄、工作表、单元格、数组等常见的对象的综合举例
今天举的这个例子主要是先判断一个工作簿是否存在,如果不存在就开始新建一个工作簿,然后关闭新建的工作薄,再利用以前学过的数组,给没有打开的工作薄中添加表头,再添加数据。
这里面使用到了Workbook、Worksheet、数组、活动的工作簿ActiveWorkbook对象的属性和方法,其中还包括Range对象及其属性方法等等。
下面一起先看看对代码的具体解释
注意:代码中的thisworkbook值得就是你已经打开正在操作的工作薄,新建的工作薄就会保存到你操作工作薄的路径下。
下面是具体的代码:
代码1:
Sub k()
Dim w As Workbook, s As Worksheet, r As Range, j As Integer
Dim arr As Variant
Dim r1 As Range, arr1 As Variant, j1 As Integer
Dim f As Variant
f = ThisWorkbook.Path & '\学生成绩表.xls'
If Len(Dir(f)) <= 0 Then
Set w = Workbooks.Add
Set s = w.Worksheets(1)
s.Name = '学生成绩表'
Set r = Worksheets('学生成绩表').Range('A65536').End(xlUp)
arr = Array('名次', '姓名', '语文', '数学', '英语', '总分', '标准')
If r.Value <> '' Then
Set r = r.Offset(1, 0)
End If
For j = 0 To 6
Worksheets('学生成绩表').Range(r.Address).Offset(0, j).Value = arr(j)
Next
w.SaveAs ThisWorkbook.Path & '\学生成绩表.xls'
ActiveWorkbook.Close
Else
MsgBox '文件已经存在,请换个文件名。'
End If
Workbooks.Open (f)
Set r1 = Worksheets('学生成绩表').Range('A65536').End(xlUp)
arr1 = Array('1', '张起', '89', '67', '72', '228', '中等')
If r1.Value <> '' Then
Set r1 = r1.Offset(1, 0)
End If
For j1 = 0 To 6
Worksheets('学生成绩表').Range(r1.Address).Offset(0, j1).Value = arr1(j1)
Next
ActiveWorkbook.Close savechanges:=True
End Sub