工作表種類:工作表(worksheet),圖表,宏表等
下標(biāo)越界的兩種情況,第一種是工作表不存在第二是數(shù)組超越下限
判斷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
‘工作表插入時(shí)候犯了一個(gè)錯(cuò)誤,在set 那一行,worksheet后面沒有加s,導(dǎo)致運(yùn)行出行了424錯(cuò)誤。
試下add那里后面能不能加括號(hào)然后讓新插入的工作表直接改名?’不可以,需要后續(xù)加語句sh.name = 重新給新插入工作表命名。
工作表的隱藏和取消隱藏
Sub ttt12()
Sheets("第十講").Visible = False
End Sub
工作表的移動(dòng)
Sub ttt13()
Sheets("第十講").Move after:=Sheets("第九講")
End Sub
‘注意此處語法,after后面是冒號(hào)等號(hào),
Sub ttt14()
Sheets("第十講").Move after:=Sheets(Sheets.Count)
End Sub
’把第十講放在所有單元格最后面,工作表的移動(dòng),相當(dāng)于excel中手工操作移動(dòng)或復(fù)制工作表選項(xiàng)中,不建立副本,選擇建立副本就相當(dāng)于工作表的復(fù)制操作。
工作表的復(fù)制
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,不是一個(gè)對象。
如果copy后面不加任何語句,就相當(dāng)于建立一個(gè)新的工作簿,實(shí)際我操作中,在A文件中運(yùn)行上面代碼,不同的是刪除掉copy之后的語句,運(yùn)行后發(fā)現(xiàn),直接彈出一個(gè)新的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
保護(hù)工作表
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