VBA入门到进阶常用知识代码总结10

第10集 Excel工作表操作
24、 工作表概念
excel工作表的分类:
excel工作表有两大类,一类是我们平常用的工作表(worksheet),另一类是图表、宏表等。这两类的统称是sheets
sheets 工作表集合,泛指excel各种工作表
Sheets(“A”),名称为A的excel工作表

workbooks(2),按打开顺序,第二个打开的工作簿。
Sub t2()
Sheets(2).Range(“a1”) = 200 '按照表格顺序,第2个sheet(可包含隐藏工作表)
End Sub
ActiveSheet ,当打开多个excel工作簿时,你正在操作的那个就是ActiveSheet
25、 工作表常见操作
'1 判断A工作表文件是否存在
Sub s1()
Dim X As Integer
For X = 1 To Sheets.Count
If Sheets(X).Name = “A” Then
MsgBox “A工作表存在”
Exit Sub
End If
Next
MsgBox “A工作表不存在”
End Sub

'2 excel工作表的插入

Sub s2()
Dim sh As Worksheet
Set sh = Sheets.Add
sh.Name = “模板”
sh.Range(“a1”) = 100
End Sub

'3 excel工作表隐藏和取消隐藏

Sub s3()
Sheets(2).Visible = True
End Sub

'4 excel工作表的移动

Sub s4()
Sheets(“Sheet2”).Move before:=Sheets(“sheet1”) 'sheet2移动到sheet1前面
Sheets(“Sheet1”).Move after:=Sheets(Sheets.Count) 'sheet1移动到所有工作表的最后面
End Sub

'6 excel工作表的复制
Sub s5() '在本工作簿中
Dim sh As Worksheet
Sheets(“模板”).Copy before:=Sheets(1)
Set sh = ActiveSheet
sh.Name = “1日”
sh.Range(“a1”) = “测试”
End Sub

Sub s6() '另存为新工作簿
Dim wb As Workbook
Sheets(“模板”).Copy
Set wb = ActiveWorkbook
wb.SaveAs ThisWorkbook.Path & “/1日.xls”
wb.Sheets(1).Range(“b1”) = “测试”
wb.Close True
End Sub
'7 保护工作表
Sub s7()
Sheets(“sheet2”).Protect “123”
End Sub
Sub s8() '判断工作表是否添加了保护密码
If Sheets(“sheet2”).ProtectContents = True Then
MsgBox “工作簿保护了”
Else
MsgBox “工作簿没有添加保护”
End If
End Sub

'8 工作表删除
Sub s9()
Application.DisplayAlerts = False
Sheets(“模板”).Delete
Application.DisplayAlerts = True
End Sub
'9 工作表的选取
Sub s10()
Sheets(“sheet2”).Select
End Sub
26、 练习题1
题目1:

复制“日报表模板”工作表(已隐藏)至本工作簿最后一个位置,复制后的工作表名称为最后的日期天数+1&"报表"的格式。
如:
当前情况下,没有任何一天的日报表,则新复制的工作表名称是“1日报表”,如果再添加时就是1+1=2日报表。如果目前已存在5天的日报表,则复制后的工作表名称应为“6日报表”

注:“日报表模板”工作表复制后要隐藏起来

Dim x As Integer
Sub 日报表格式生成()

Dim sh As Worksheet
Sheets("日报表模板").Visible = True
Sheets("日报表模板").Select

If x = 0 Then
    Sheets("日报表模板").Copy after:=Sheets("日报表模板")
    Set sh = ActiveSheet
    sh.Name = x + 1 & "日报表"
    Sheets("第1题").Select
    x = x + 1
Else
    Sheets("日报表模板").Copy after:=Worksheets(Worksheets.Count)
    Set sh = ActiveSheet
    sh.Name = x + 1 & "日报表"
    sh.Select
    Sheets("第1题").Select
    x = x + 1
End If

Sheets("日报表模板").Visible = False

End Sub

题目2:

把所有日报表另存为工作簿到本文夹下,工作簿名称为工作表的名称。
Sub 另存报表()

  Dim wb As Workbook
  Dim i As Integer
  For i = 1 To Worksheets.Count - 2
    Sheets(i & "日报表").Copy
    Set wb = ActiveWorkbook
     wb.SaveAs ThisWorkbook.Path & "/" & i & "日报表.xls"
     wb.Close True
    Next i

End Sub

发布了47 篇原创文章 · 获赞 0 · 访问量 246

猜你喜欢

转载自blog.csdn.net/tiansdk320/article/details/104325678