一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Excel之VBA常用功能應(yīng)用篇:用代碼添加TabStrip控件方法

 每天學(xué)學(xué)Excel 2022-02-15

No.1

TabStrip控件和Page控件是十分相像,如果不仔細(xì)研究,一定會搞錯。

本節(jié)我們主要介紹,如何利用VBA代碼進(jìn)行TabStrip控件的添加和操作。

看上去TabStrip控件和分頁控件一樣,分別進(jìn)行頁面切換,但是其原理并不一樣。

簡單來說,分頁控件可以當(dāng)做一個(gè)容器,可添加其它控件,如文本框、按鈕等。

TabStrip控件卻不可以,它就是一個(gè)單獨(dú)的顯示控件,其內(nèi)部沒有任何包含控件。

可以理解為一件透明的衣服,表單中的其它控件都可以被顯示出來。

通過一個(gè)示例介紹一下,重點(diǎn)在后面。

如下圖所示,分別添加了星期一到星期日,7個(gè)Tab。

圖中控件,除了Form表單外,全部通過VBA代碼進(jìn)行添加,所以編碼過程中,是看不到任何控件的。

本示例可實(shí)現(xiàn),切換Tab,也就是切換星期標(biāo)簽,然后單擊選擇按鈕,即可顯示出標(biāo)簽文本,提示選擇了星期幾。

標(biāo)簽控件和按鈕控件都屬于Form表單內(nèi)部按鈕。

整個(gè)過程似乎并沒有什么用,但是在某些情況之下是需要這樣操作的。

如果,我們的內(nèi)容不變而只改變Tab項(xiàng)目的時(shí)候就用到此控件了。

比如,每天的事項(xiàng)是固定的,但是星期幾是不固定,所以在這些固定內(nèi)容不變的情況下,只需要改變星期即可對數(shù)據(jù)進(jìn)行操作,這就是一個(gè)很好的方法。

應(yīng)用場景根據(jù)不同的行業(yè)來判斷,下面我們重點(diǎn)關(guān)注一下代碼。

No.2

代碼是軟件的靈魂,用眼睛看到的內(nèi)容,其背后都是一些符號代碼,通過相應(yīng)的規(guī)則排列,然后編譯呈現(xiàn)出來的效果。

如下代碼就是上述對話框成型的一個(gè)過程。

首先,新建一個(gè)Form表單,其實(shí)Form表單也可以通過代碼創(chuàng)建,這示例并沒有這么做。

然后在Form表單中添加如下代碼:

'--------------- TabStrip 控件 VBA代碼編程

'-------- 定義按鈕類

Dim BtCom As New BtnClick

Private Sub UserForm_Initialize()

Dim aobj As Object, fobj As Object, btnObj As Object

'------------- 新建 TabStrip 控件

Set aobj = Me.Controls.Add("Forms.TabStrip.1", "Tp")

'----------------設(shè)置 屬性

With aobj

.Top = 30

.Left = 20

.Width = Me.Width - 50

.Height = Me.Height - 90

.Style = 0

'.BackColor = RGB(221, 221, 221)

.ForeColor = QBColor(9)

.Tabs.Clear '刪除 Tab

For i = 0 To 6

aobj.Tabs.Add (VBA.Format(i, "aaaa")) '添加 Tab

Next i

End With

'新建按鈕

Set btnObj = Me.Controls.Add("Forms.CommandButton.1", "Btn1")

With btnObj

.Width = 120

.Height = 28

.Top = aobj.Top + aobj.Height - .Height - 5

.Left = aobj.Left + 10

.Caption = "選 擇"

End With

BtCom.apend btnObj '關(guān)聯(lián)按鈕事件

End Sub

上面的代碼成功建立之后,可以運(yùn)行一下試試有沒有問題。

實(shí)際上是有問題的,因?yàn)?,代碼是有區(qū)別的,有些代碼是一些死代碼,有些代碼是代碼中的靈魂。

重點(diǎn)來了。

有了下面的代碼才能讓整合表單運(yùn)行起來有了活的行為。

'------------- 定義類 BtnClick 按鈕事件

Private WithEvents Btn As MSForms.CommandButton

Public Sub apend(ctl As MSForms.CommandButton)

Set Btn = ctl

End Sub

'------------ Click 事件

Private Sub Btn_Click()

Dim xobj As Object

For Each xobj In Btn.Parent.Controls '遍歷表單控件

If TypeName(xobj) = "TabStrip" Then '如果是TabStrip控件

If xobj.Name = "Tp" Then '如果控件名為 Tp

'新建 Label 控件

AddLabel xobj, xobj.SelectedItem.Caption, xobj.SelectedItem.Index

Exit For

End If

End If

Next xobj

End Sub

'----------------- 新建 Label 控件過程

Private Sub AddLabel(xobj As Object, lStr As String, c As Integer)

Dim lobj As Object

'如果 Label 已經(jīng)存在

If CheckLabel(xobj, lStr, c) Then Exit Sub

'如果 Label 不存在

'新一個(gè) Label 控件

Set lobj = xobj.Parent.Controls.Add("Forms.Label.1")

With lobj

.Top = xobj.Top + 60

.Left = xobj.Left + 100

.Height = 60

.Width = 300

.Caption = "你選擇了:" & lStr

.ForeColor = QBColor(c)

.BackStyle = 0

With .Font

.Name = "微軟雅黑"

.Size = 30

.Bold = True

End With

End With

End Sub

'------------- 檢測 Label 控件是否存在 返回Boolean值,True 或 False

Private Function CheckLabel(xobj As Object, lStr As String, c As Integer) As Boolean

CheckLabel = False

Dim lobj As Object

'遍歷 表單控件

For Each lobj In xobj.Parent.Controls

'如果 Label 控件存在

If TypeName(lobj) = "Label" Then

With lobj

.Caption = "你選擇了:" & lStr

.ForeColor = QBColor(c)

End With

CheckLabel = True

End If

Next lobj

End Function

上述代碼里有4個(gè)過程或函數(shù),分別執(zhí)行不同的功能,缺一不可。

這就是一些符號或文字,變成圖象的方法,其中還有很多需要掌握的內(nèi)容,比如運(yùn)行環(huán)境,及運(yùn)行環(huán)境配置。實(shí)際上是一套很繁雜的事情,但是這些繁雜的事情只做一遍,后面就不用做了。

如果想讓自己輕松,從來都是經(jīng)歷風(fēng)雨之后的愉悅。

編程這件小事也一樣,如不曾毫無頭緒,哪會感覺到運(yùn)行后的順暢!

對了,上面的代碼是一個(gè)類模塊,模塊名可以自己設(shè)置,本示例設(shè)置為:BtnClick

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩人妻少妇一区二区| 欧洲一级片一区二区三区| 大香蕉大香蕉手机在线视频| 久久精品亚洲精品一区| 欧美大胆女人的大胆人体| 人人妻人人澡人人夜夜| 亚洲av又爽又色又色| 国产精品流白浆无遮挡| 麻豆视传媒短视频在线看| 护士又紧又深又湿又爽的视频| 91天堂素人精品系列全集| 亚洲一区二区三区av高清| 欧美黑人巨大一区二区三区| 国产精品一区二区日韩新区| 日韩女优视频国产一区| 日本在线高清精品人妻| 黄片免费观看一区二区| 国产精品久久精品毛片| 99久久国产精品亚洲| 国内女人精品一区二区三区| 国产精品自拍杆香蕉视频| 午夜成年人黄片免费观看| 日韩欧美综合中文字幕| 99久久精品国产日本| 国产熟女一区二区精品视频 | 尹人大香蕉中文在线播放| 69精品一区二区蜜桃视频| 久久精品中文字幕人妻中文| 在线免费观看黄色美女| 精品人妻精品一区二区三区| 国产欧美一区二区色综合| 亚洲精品高清国产一线久久| 国产日韩精品激情在线观看| 美国女大兵激情豪放视频播放| 成人精品一区二区三区综合| 91人妻人人澡人人人人精品| 亚洲综合激情另类专区老铁性| 亚洲国产丝袜一区二区三区四| 日韩中文无线码在线视频| 婷婷亚洲综合五月天麻豆| 欧美日本亚欧在线观看|