xcel vba編程進入深水階段,那就對底層的一些代碼構建有一定的了解。
類模塊就是其重要的一環,可以利用類模塊做一些十分有用的事情。
其實在VBA實際應用中,離不開類模塊的運用,只有我們并不知道而已。
每一個代碼之后,或許就應用到類模塊,大多是系統給我們預置完成的一些模塊,看上去并不能很明顯地發現,但它實實在在的存在,并處理著所有的表格功能。
本節重點講一下,如何利用代碼來創建一個類模塊和刪除一個類模塊。
然后再給新建的類模塊添加代碼,代碼可以是你想構建的任何功能。
上圖為本節示例中的部分代碼。
三個按鈕分別實現不同的功能,下面具體看代碼進行認識,功能都進行了模塊化構建,所以在使用的時候要分清楚什么地使用這些代碼。
添加類模塊過程:
Public Sub AddClassCode(ClassName As String, CodeString As String)
'添加類模塊代碼
Dim Class As Object
For Each Class In ThisWorkbook.VBProject.VBComponents
If Class.Name=ClassName Then
Class.CodeModule.AddFromString (CodeString)
End If
Next Class
End Sub
刪除類模塊過程:
Public Sub DelClass(ClassName As String)
'刪除類模塊
Dim Class As Object
For Each Class In ThisWorkbook.VBProject.VBComponents
If Class.Name=ClassName Then
ThisWorkbook.VBProject.VBComponents.Remove Class
End If
Next Class
End Sub
添加類模塊代碼過程:
Public Sub AddClassCode(ClassName As String, CodeString As String)
'添加類模塊代碼
Dim Class As Object
For Each Class In ThisWorkbook.VBProject.VBComponents
If Class.Name=ClassName Then
Class.CodeModule.AddFromString (CodeString)
End If
Next Class
End Sub
調用如上代碼使用下面的按鈕過程:
Private Sub CommandButton1_Click()
Dim ClassName As String, CodeString As String
ClassName="NewClass01" '定義類模塊名稱
DelClass ClassName '刪除類模塊
addClass ClassName '添加類模塊
'定義類模塊代碼
CodeString="Public s As New Worksheet" & VBA.vbCrLf
CodeString=CodeString & "Private Sub opensheet(s As Worksheet)" & VBA.vbCrLf
CodeString=CodeString & "Set s=ActiveSheet(2)" & VBA.vbCrLf
CodeString=CodeString & "s.Select" & VBA.vbCrLf
CodeString=CodeString & "End Sub" & VBA.vbCrLf
AddClassCode ClassName, CodeString '添加類模塊代碼
End Sub
具體實現方法仔細看代碼,就會慢慢明白。
下面列出重點代碼:
類模塊是一個比較難學習的內容,要多次進行練習,如果很難入門,也不要太著急,如果不是深入編程,進行一些很繁雜的程序處理,基本也用不著。
但是,如果學會之后,那將是一個很大的進步。
至于如何利用類模塊來實現一些功能,以后有機會,慢慢做一些示例進行講解。
歡迎關注、收藏
---END--
VBA中類的解讀及應用》教程【10165646】是我推出的第五套教程,目前已經是第一版修訂了。這套教程定位于最高級,是學完初級,中級后的教程。
類,是非常抽象的,更具研究的價值。隨著我們學習、應用VBA的深入,有必要理解這些抽象的理論知識。對象,類,過程,方法,屬性,事件,接口,接口如何實現等等。掌握了這些理論,不僅對于VBA這種寄生語言的實質有所深入的理解,也對自然界的很多事物將同樣有所感悟。目前,這套教程程序文件已經通過32位,64位兩種office系統測試。
這套教程共兩冊,八十四講,今后一段時間會給大家陸續推出修訂后的教程內容。今日的內容是:VBA中類的解讀及應用第十二講:限制復選選擇(上)
【分享成果,隨喜正能量】沉默,可以讓混亂的心,變得清澈。沉默,是城府,是睿智,是內涵;沉默,是最后的清高,也是最后的自由。。
類是VBA的魂,如果理解了類,那么很多VBA的理論會很容易理解。所以我們要理解類,在理解的基礎上掌握它的應用。
1) 對于單選這種類型,一共多個答案,如果選擇了一個那么其他的將不被選擇。
2) 對于多選題,可以選擇三個答案,如果選中了三個,那么其他的將不被選擇。
需求分析:
這類需求是很普通的,在一個窗體上有若干個答案,我們要通過類來實現我們的需求,這里將涉及到類的命名,類對象的關聯,類事件的命名與響應。
下面的幾個單元我們講解這個需求的實現:
我們先建立一個類模塊(mydati)【注釋:漢語拼音,答題】,并在類模塊中實現事件對象的聲明,事件的過程。
類模塊代碼:
Public WithEvents xuanzhe As MSForms.OptionButton
Public WithEvents yemian As MSForms.UserForm
Private Sub xuanzhe_Click() '類的數據改變事件
Dim index As Long
yy=xuanzhe.Name
index=Mid(xuanzhe.Name, 13) '取出OptionButtonN中的數字N
If yemian.Controls("OptionButton" & index).Value=True Then
Sheets("12.13.14").Cells(1, 1)=yemian.Controls("Label" & index + 1).Caption
For i=1 To 5
If i <> index Then
yemian.Controls("OptionButton" & i).Enabled=False
End If
Next
End If
End Sub
我們看看類模塊的代碼截圖:
【待續】
今日內容回向:
1 類模塊中需要建立的內容是什么?
2 WithEvents是聲明什么的?
(待續)
今日內容回向:
1 如何理解正則函數?
2 在窗體的構建構成中,執行了哪些動作?
本講內容參考程序文件:VBA-CLASS(1-28).xlsm
我20多年的VBA實踐經驗,全部濃縮在下面的各個教程中:
近項目上用到了調用微信和支付寶的第三方支付接口,因為以前沒用過,所以這次用到了之后總結一下分享給大家,這里介紹兩種支付方式,即app支付和掃碼支付方式。
一、app支付(這里只介紹java端調用支付,安卓或ios端自己參考相關的調用文檔)
首先可以看一看項目支付流程(圖解)
1. 在頁面上選擇支付方式(微信或支付寶)
2. 由相應的客戶端調用相應的支付方式進入相應的支付頁面(安卓或ios調用支付接口并進入微信或支付寶支付頁面,顯示支付的信息)
3. 輸入密碼進行支付
4. 調用支付結果接口,來返回支付成功與否
四圖分別是選擇支付方式、微信支付頁面、支付寶支付頁面、微信支付結果(成功)頁面
也是基本的支付三個步驟。
一、先看微信支付:
在調用微信支付之前你應該已經下單成功(即訂單信息入庫成功),這里需要幾個值:
OrderName(訂單名稱),orderNumber(訂單編號,唯一),amount(金額), prepayId(交易會話id)
前三個參數直接從數據庫里獲取。prepayid是什么?可以具體看微信支付文檔,我們可以從下單接口中返回獲得這個會話id并且需要入庫,這個參數最重要的作用是用于第一次我們沒有支付,但已經生成了一個待支付的訂單。這種情況下我們不需要再次去調用下單接口返回prepayId,因為我們已經生成過了這個值
下面看手機端頁面的js代碼:
*請認真填寫需求信息,我們會在24小時內與您取得聯系。