iT邦幫忙

0

【Excel VBA入門】5、物件的概念

  • 分享至 

  • xImage
  •  

VBA將worksheet、cell都稱為物件。

物件的概念

Excel是由cell、sheet等等的這些物件組成。
例如車子組成的物件是輪子、引擎、車殼、車門。

屬性的概念則是物件的...

車子的屬性例如可以是車齡、里程、顏色。
輪子的屬性可以是尺寸、種類。

回到VBA,假設我們想知道worksheet的名稱
Worksheets(1).Name就可以得到名稱
Worksheets(1)的Name

或是說我們想知道這個物件可以做哪些操作
Worksheets(1).Active

儲存格

賦值給儲存格

Range("A1").Value
相當於取得A1儲存格的Value

Sub test()
    Range("A1").Value = 1
    Range("A2").Value = "我是A2"
End Sub

讀取儲存格的值

Sub test()
    Range("A1").Value = "我是A1"
    MsgBox Range("A1").Value
End Sub

工作表

工作表的屬性

Worksheets.Count代表工作表的數量
Worksheets(2).Name代表工作表2的名稱

Sub test()

    Range("A1").Value = Worksheets.Count
    Range("A2").Value = Worksheets(2).Name
End Sub

操作另一張工作表

Worksheet(數值)代表從左側數來第幾個工作表。
Worksheets("工作表名稱")

Sub test()
    Worksheets(2).Range("A1") = "操作工作表2"
    Worksheets("工作表2").Range("B1") = "操作工作表2"
End Sub

複製工作表

將工作表2複製後,放到工作表2的後面。

Sub test()

    Worksheets("工作表2").Copy After:=Worksheets("工作表2")
End Sub

也可以寫成

Worksheets("工作表2").Copy Before:=Worksheets("工作表2")

移動工作表

將工作表1移動到工作表2後面。

Sub test()

    Worksheets("工作表1").Move After:=Worksheets("工作表2")
End Sub

也可以寫成

    Worksheets("工作表1").Move Before:=Worksheets("工作表2")

其它常用的屬性與方法

A B C D E
Cells(1,1) Cells(1,2) Cells(1,3) Cells(1,4) Cells(1,5)
Cells(2,1) Cells(2,2) Cells(2,3) Cells(2,4) Cells(2,5)

Cells 屬性

Sub test()

    Cells(1, 2).Value = "第一列第二行"
    Cells(2, 4).Value = "第二列第四行"
End Sub

對啟用中、選取中的儲存格操作

啟用中代表目前正在對哪一個cell編輯。
選取中代表選擇範圍內的cell。

Sub test()

    Selection.Value = "select"
    ActiveCell.Value = "active"
End Sub

取得儲存格更多的資訊

Address屬性

Range("A1").Address

IsEmpty函數

IsEmpty(Range("A1").Value)

範例

Sub test()

    Range("A1").Value = Range("A1").Address
    Range("B1").Value = IsEmpty(Range("A1").Value)
    Range("A2").Value = ""
    Range("B2").Value = IsEmpty(Range("A2").Value)
End Sub

操作列與行

AutoFit自動調整第一行的寬度。

Sub test()

    Rows(3).Value = "列3"
    Columns(1).Value = "行1111111111111111"
    Columns(1).AutoFit
End Sub

Rows(1:3) 代表第1列到第3列
Columns(1:3) 同理,並且可使用ABC替代。

啟用工作表

假設當前在工作表1,執行以下,則會跳到工作表2。

Sub test()

    Worksheets("工作表2").Activate
End Sub

With語法

Worksheets(1)重複使用,可以使用With。

Sub test()

    Worksheets(1).Name = "測試"
    Worksheets(1).Range("B3").Value = 123
    Worksheets(1).Range("C3").Value = 456
End Sub

改寫後

Sub test()
    With Worksheets(1)
        .Name = "測試"
        .Range("B3").Value = 123
        .Range("C3").Value = 456
        
    End With
End Sub

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
neiljiohu
iT邦新手 5 級 ‧ 2024-08-27 10:41:36

Top论文网提供高分保A级的各类✔️留学生论文代写✔️essay代写✔️留学生作业代写✔️网课代上✔️考试代考等服务。可靠专业的硕博写手+免费Turnitin查重+准时高质合理价格+无限修改售后服务,助您顺利毕业。

我要留言

立即登入留言