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

(0)

相关推荐