佛山小老鼠樓主第57節(jié)類模塊基礎(chǔ)【2016年6月16日Vba編程高級班上課筆記】
第57節(jié)類模塊基礎(chǔ)【2016年6月16日Vba編程高級班上課筆記】
9
課件 聽課學(xué)員出勤截圖 講課內(nèi)容 Option Explicit '類模塊 '插入和刪除類模塊 '類模塊有三步曲 '第一步曲:創(chuàng)建類模塊 '第二步曲:類的實例化,類模塊本身不能用 '要實例化才能用,怎樣實例化,定義一下就可以了 '第三步曲:歸類 'Sub TestA() ' Dim 橙子 As New 水果 '我們引用外部對象,前期綁定也是這樣 ' 橙子. 'End Sub '類最大的一個特點,就是共享,團隊合作 Sub TestB() Dim 李子 As New 水果 李子.去重 = Selection End Sub Sub TestC() Dim 蘋果 As New 水果 蘋果.去重 = Selection End Sub Sub TestD() Dim 香蕉 As New 水果, arr1, arr2(), x arr1 = Range('A1:A9') ReDim arr2(1 To UBound(arr1), 1 To 1) For x = 2 To UBound(arr1) 香蕉.算 = arr1(x, 1) arr2(x - 1, 1) = 香蕉.算 Next x [b2].Resize(UBound(arr1), 1) = arr2 End Sub Option Explicit Dim Cj 'Public Cj'同有必要用public,因為外面沒有用 ''通過模塊級變量Cj讓let和get產(chǎn)生聯(lián)系 ''Property Let 顏色(x%) '可寫屬性'Let后面括號一定要有參數(shù) '' ''End Property ''Property Get 形狀() 'get后面括號一定可無可有參數(shù) '' '可讀的屬性 ''End Property '''在類模塊里叫做屬性過程名稱 '''在普通模塊里叫做對象的屬性 ''Sub 吃() '吃是方法 '' ''End Sub ''Function 稱重量() '稱重量是函數(shù) '' ''End Function 'Property Let 去重(Rg As Range) 'Rg是從普通模塊里傳遞過來的 ''是指等號后面部分 ' Dim Dic, arr1, ar ' arr1 = Rg '因為字典優(yōu)先裝入對象,所以要到一下,先裝數(shù)組 ' Set Dic = CreateObject('Scripting.Dictionary') ' For Each ar In arr1 ' If ar <> '' Then ' Dic(ar) = '' ' End If ' Next ar ' Rg.Clear ' If UBound(arr1, 1) = 1 Then ' Rg(1).Resize(1, Dic.Count) = Dic.keys ' Else ' Rg(1).Resize(Dic.Count, 1) = Application.Transpose(Dic.keys) ' End If 'End Property 'Property Let 算(x As Variant) ' If x < 60 Then ' Cj = '不及格' ' ElseIf x < 70 Then ' Cj = '及格' ' ElseIf x < 80 Then ' Cj = '良好' ' Else ' Cj = '優(yōu)秀' ' End If 'End Property 'Property Get 算() ' 算 = Cj 'End Property ''當我們學(xué)會類模塊之后,let用sub ''get我們就用function代替
Option Explicit
'Sub test() ' Dim my As New 我的代碼 ' 'End Sub Sub testb() Dim 李子 As New 水果 李子.去重 = Selection End Sub Sub tsetd() Dim 香蕉 As New 水果 Dim arr1, arr2(), x arr1 = Range('a1:a9') ReDim arr2(1 To UBound(arr1), 1 To 1) For x = 2 To UBound(arr1) 香蕉.算 = arr1(x, 1) arr2(x - 1, 1) = 香蕉.算 Next x [b2].Resize(UBound(arr1), 1) = arr2 End Sub Property Let 去重(Rg As Range) 'Rg是從普通模塊里傳遞過來的 '是指等號后面部分 Dim Dic, arr1, ar arr1 = Rg '因為字典優(yōu)先裝入對象,所以要到一下,先裝數(shù)組 Set Dic = CreateObject('Scripting.Dictionary') For Each ar In arr1 Dic(ar) = '' Next ar Rg.Clear Rg(1).Resize(Dic.Count, 1) = Application.Transpose(Dic.keys) End Property Property Let 算(x As Variant) If x < 60 Then cj = '不及格' ElseIf x < 70 Then cj = '及格' ElseIf x < 80 Then cj = '良好' ElseIf x < 90 Then cj = '優(yōu)秀' End If End Property Property Get 算() 算 = cj End Property
Option Explicit
'類模塊 '插入和刪除類模塊 '類模塊有三步曲 '第一步曲:創(chuàng)建類模塊 '第二步曲:類的實例化,類模塊本身不能用 '要實例化才能用,怎樣實例化,定義一下就可以了 '第三步曲:歸類 'Sub TestA() ' Dim 橙子 As New 水果 '我們引用外部對象,前期綁定也是這樣 ' 橙子. 'End Sub '類最大的一個特點,就是共享,團隊合作 Sub TestB() Dim 李子 As New 水果 李子.去重 = Selection End Sub Sub TestC() Dim 蘋果 As New 水果 蘋果.去重 = Selection End Sub Sub TestD() Dim 香蕉 As New 水果, arr1, arr2(), x arr1 = Range('A1:A9') ReDim arr2(1 To UBound(arr1), 1 To 1) For x = 2 To UBound(arr1) 香蕉.算 = arr1(x, 1) arr2(x - 1, 1) = 香蕉.算 Next x [b2].Resize(UBound(arr1), 1) = arr2 End Sub Option Explicit Dim Cj 'Public Cj'同有必要用public,因為外面沒有用 ''通過模塊級變量Cj讓let和get產(chǎn)生聯(lián)系 ''Property Let 顏色(x%) '可寫屬性'Let后面括號一定要有參數(shù) '' ''End Property ''Property Get 形狀() 'get后面括號一定可無可有參數(shù) '' '可讀的屬性 ''End Property '''在類模塊里叫做屬性過程名稱 '''在普通模塊里叫做對象的屬性 ''Sub 吃() '吃是方法 '' ''End Sub ''Function 稱重量() '稱重量是函數(shù) '' ''End Function 'Property Let 去重(Rg As Range) 'Rg是從普通模塊里傳遞過來的 ''是指等號后面部分 ' Dim Dic, arr1, ar ' arr1 = Rg '因為字典優(yōu)先裝入對象,所以要到一下,先裝數(shù)組 ' Set Dic = CreateObject('Scripting.Dictionary') ' For Each ar In arr1 ' If ar <> '' Then ' Dic(ar) = '' ' End If ' Next ar ' Rg.Clear ' If UBound(arr1, 1) = 1 Then ' Rg(1).Resize(1, Dic.Count) = Dic.keys ' Else ' Rg(1).Resize(Dic.Count, 1) = Application.Transpose(Dic.keys) ' End If 'End Property 'Property Let 算(x As Variant) ' If x < 60 Then ' Cj = '不及格' ' ElseIf x < 70 Then ' Cj = '及格' ' ElseIf x < 80 Then ' Cj = '良好' ' Else ' Cj = '優(yōu)秀' ' End If 'End Property 'Property Get 算() ' 算 = Cj 'End Property ''當我們學(xué)會類模塊之后,let用sub ''get我們就用function代替 Property Let 算(x As Variant) If x < 60 Then Cj = '不及格' ElseIf x < 70 Then Cj = '及格' ElseIf x < 80 Then Cj = '良好' Else Cj = '優(yōu)秀' End If End Property Property Get 結(jié)果() 結(jié)果 = Cj End Property
Option Explicit
'類模塊 '插入和刪除類模塊 '類模塊有三步曲 '第一步曲:創(chuàng)建類模塊 '第二步曲:類的實例化,類模塊本身不能用 '要實例化才能用,怎樣實例化,定義一下就可以了 '第三步曲:歸類 'Sub TestA() ' Dim 橙子 As New 水果 '我們引用外部對象,前期綁定也是這樣 ' 橙子. 'End Sub '類最大的一個特點,就是共享,團隊合作 Sub TestB() Dim 李子 As New 水果 李子.去重 = Selection End Sub Sub TestC() Dim 蘋果 As New 水果 蘋果.去重 = Selection End Sub Sub TestD() Dim 香蕉 As New 水果, arr1, arr2(), x arr1 = Range('A1:A9') ReDim arr2(1 To UBound(arr1), 1 To 1) For x = 2 To UBound(arr1) 香蕉.算 = arr1(x, 1) arr2(x - 1, 1) = 香蕉.算 Next x [b2].Resize(UBound(arr1), 1) = arr2 End Sub Option Explicit Dim Cj 'Public Cj'同有必要用public,因為外面沒有用 ''通過模塊級變量Cj讓let和get產(chǎn)生聯(lián)系 ''Property Let 顏色(x%) '可寫屬性'Let后面括號一定要有參數(shù) '' ''End Property ''Property Get 形狀() 'get后面括號一定可無可有參數(shù) '' '可讀的屬性 ''End Property '''在類模塊里叫做屬性過程名稱 '''在普通模塊里叫做對象的屬性 ''Sub 吃() '吃是方法 '' ''End Sub ''Function 稱重量() '稱重量是函數(shù) '' ''End Function 'Property Let 去重(Rg As Range) 'Rg是從普通模塊里傳遞過來的 ''是指等號后面部分 'Rg As Range表示你選擇的區(qū)域 ' Dim Dic, arr1, ar ' arr1 = Rg '因為字典優(yōu)先裝入對象,所以要到一下,先裝數(shù)組 ' Set Dic = CreateObject('Scripting.Dictionary') ' For Each ar In arr1 ' If ar <> '' Then ' Dic(ar) = '' ' End If ' Next ar ' Rg.Clear ' If UBound(arr1, 1) = 1 Then ' Rg(1).Resize(1, Dic.Count) = Dic.keys 'Rg (1)表示左上角第一個單元格 ' Else ' Rg(1).Resize(Dic.Count, 1) = Application.Transpose(Dic.keys) ' End If 'End Property 'Property Let 算(x As Variant) ' If x < 60 Then ' Cj = '不及格' ' ElseIf x < 70 Then ' Cj = '及格' ' ElseIf x < 80 Then ' Cj = '良好' ' Else ' Cj = '優(yōu)秀' ' End If 'End Property 'Property Get 算() ' 算 = Cj 'End Property ''當我們學(xué)會類模塊之后,let用sub ''get我們就用function代替 Property Let 算(x As Variant) If x < 60 Then Cj = '不及格' ElseIf x < 70 Then Cj = '及格' ElseIf x < 80 Then Cj = '良好' Else Cj = '優(yōu)秀' End If End Property Property Get 結(jié)果() 結(jié)果 = Cj End Property
'類模塊
'插入和刪除類模塊 '類模塊有三步曲 '第一步曲:創(chuàng)建類模塊 '第二步曲:類的實例化,類模塊本身不能用 '要實例化才能用,怎樣實例化,定義一下就可以了 '第三步曲:歸類 'Sub TestA() ' Dim 橙子 As New 水果 '我們引用外部對象,前期綁定也是這樣 ' 橙子. 'End Sub '類最大的一個特點,就是共享,團隊合作 Sub TestB() Dim 李子 As New 水果 李子.去重 = Selection End Sub Sub TestC() Dim 蘋果 As New 水果 蘋果.去重 = Selection End Sub Sub TestD() Dim 香蕉 As New 水果, arr1, arr2(), x arr1 = Range('A1:A9') ReDim arr2(1 To UBound(arr1), 1 To 1) For x = 2 To UBound(arr1) 香蕉.算 = arr1(x, 1) arr2(x - 1, 1) = 香蕉.算 Next x [b2].Resize(UBound(arr1), 1) = arr2 End Sub Option Explicit Dim Cj 'Public Cj'同有必要用public,因為外面沒有用 ''通過模塊級變量Cj讓let和get產(chǎn)生聯(lián)系 ''Property Let 顏色(x%) '可寫屬性'Let后面括號一定要有參數(shù) '' ''End Property ''Property Get 形狀() 'get后面括號一定可無可有參數(shù) '' '可讀的屬性 ''End Property '''在類模塊里叫做屬性過程名稱 '''在普通模塊里叫做對象的屬性 ''Sub 吃() '吃是方法 '' ''End Sub ''Function 稱重量() '稱重量是函數(shù) '' ''End Function 'Property Let 去重(Rg As Range) 'Rg是從普通模塊里傳遞過來的 ''是指等號后面部分 ' Dim Dic, arr1, ar ' arr1 = Rg '因為字典優(yōu)先裝入對象,所以要到一下,先裝數(shù)組 ' Set Dic = CreateObject('Scripting.Dictionary') ' For Each ar In arr1 ' If ar <> '' Then ' Dic(ar) = '' ' End If ' Next ar ' Rg.Clear ' If UBound(arr1, 1) = 1 Then ' Rg(1).Resize(1, Dic.Count) = Dic.keys ' Else ' Rg(1).Resize(Dic.Count, 1) = Application.Transpose(Dic.keys) ' End If 'End Property 'Property Let 算(x As Variant) ' If x < 60 Then ' Cj = '不及格' ' ElseIf x < 70 Then ' Cj = '及格' ' ElseIf x < 80 Then ' Cj = '良好' ' Else ' Cj = '優(yōu)秀' ' End If 'End Property 'Property Get 算() ' 算 = Cj 'End Property ''當我們學(xué)會類模塊之后,let用sub ''get我們就用function代替 Property Let 算(x As Variant) If x < 60 Then Cj = '不及格' ElseIf x < 70 Then Cj = '及格' ElseIf x < 80 Then Cj = '良好' Else Cj = '優(yōu)秀' End If End Property Property Get 結(jié)果() 結(jié)果 = Cj |
|
來自: 周游四方48 > 《電腦/上網(wǎng)類》