工作表种类:工作表(worksheet),图表,宏表等
下标越界的两种情况,第一种是工作表不存在第二是数组超越下限
判断A工作表是否存在
Sub ttt10()
Dim x As Integer
For x = 1 To Sheets.Count
If Sheets(x).Name = "第shi讲" Then
MsgBox "A exist"
Exit Sub
End If
Next
MsgBox "not exist"
End Sub
工作表的插入
Sub ttt11()
Dim sh As Worksheet
Set sh = Worksheets.Add
sh.Name = "第十讲"
sh.Range("a1") = "love my life"
End Sub
‘工作表插入时候犯了一个错误,在set 那一行,worksheet后面没有加s,导致运行出行了424错误。
试下add那里后面能不能加括号然后让新插入的工作表直接改名?’不可以,需要后续加语句sh.name = 重新给新插入工作表命名。
工作表的隐藏和取消隐藏
Sub ttt12()
Sheets("第十讲").Visible = False
End Sub
工作表的移动
Sub ttt13()
Sheets("第十讲").Move after:=Sheets("第九讲")
End Sub
‘注意此处语法,after后面是冒号等号,
Sub ttt14()
Sheets("第十讲").Move after:=Sheets(Sheets.Count)
End Sub
’把第十讲放在所有单元格最后面,工作表的移动,相当于excel中手工操作移动或复制工作表选项中,不建立副本,选择建立副本就相当于工作表的复制操作。
工作表的复制
Sub ttt15()
Dim sd As Worksheet
Sheets(2).Copy before:=Sheets("第一讲")
Set sd = ActiveSheet
sd.Name = "1日"
sd.Range("a1") = 124
End Sub
‘为什么copy语句那里不能采用set sd = sheet(2).copy(before:=sheet("第一讲")呢, 原因是copy返回的值是true或者是false,不是一个对象。
如果copy后面不加任何语句,就相当于建立一个新的工作簿,实际我操作中,在A文件中运行上面代码,不同的是删除掉copy之后的语句,运行后发现,直接弹出一个新的excel工作簿。
另存工作簿
Sub ttt15()
Dim sd As Workbook
Sheets(2).Copy
Set sd = ActiveWorkbook
sd.SaveAs ThisWorkbook.Path & "/2日.xls"
sd.Sheets(1).Range("b1") = 124
sd.Close True
End Sub
保护工作表
Sub ttt16()
Sheets("第十讲").Protect "123"
End Sub
工作表删除
sub ttt17()
application.displayalerts = false
sheets("sheet2").delete
application.displayalerts = true
end sub
工作表的选取
Sub ttt18()
Sheets("第九讲").Select
End Sub