VBA第十讲 excel工作表操作

工作表种类:工作表(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

你可能感兴趣的:(VBA第十讲 excel工作表操作)