乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      VBA常用代碼解析(第二十八講)

       wdmexcel 2015-09-14

      使用AddItem方法添加列表項(xiàng)

      使用AddItem方法添加列表項(xiàng),對(duì)于單列的列表框,在列表中添加一項(xiàng)。對(duì)于多列的列表框,在列表中添加一行,如下面的代碼所示。

      Private Sub UserForm_Initialize()

      DimiRow As Integer

      Dimi As Integer

      iRow= Sheet1.Range('A65536').End(xlUp).Row

      Fori = 1 To iRow

      Me.ListBox1.AddItem (Sheet1.Cells(i1))

      Next

      End Sub

      代碼解析:

      在窗體初始化時(shí)使用AddItem方法為列表框添加列表項(xiàng)。

      AddItem方法的語(yǔ)法如下:

      object.AddItem [ item[,varIndex]]

      參數(shù)object是必需的,一個(gè)有效的對(duì)象。

      參數(shù)item是可選的,指定要添加的項(xiàng)或行。第一個(gè)項(xiàng)或行的編號(hào)為0;第二個(gè)項(xiàng)或行的編號(hào)為 1,依此類(lèi)推。

      參數(shù)varIndex是可選的,指定新的項(xiàng)或行在對(duì)象中的位置。

      如果提供一個(gè)有效的varIndex的值,AddItem方法就把項(xiàng)或行放在列表中的那個(gè)位置。如果忽略 varIndex,此方法就把項(xiàng)或行添加在列表的末尾。對(duì)于多列列表框或者組合框,AddItem 方法插入一個(gè)完整的行,為控件的每一列都插入一項(xiàng)。為了給第一列后面的項(xiàng)賦值,可用ListColumn屬性來(lái)規(guī)定項(xiàng)的行和列。

      對(duì)于工作表中使用窗體添加的列表框控件使用AddItem方法添加列表項(xiàng),如下面的代碼所示。

      Sub AddItem()

      DimiRow As Integer

      Dimi As Integer

      iRow= Sheet1.Range('A65536').End(xlUp).Row

      WithSheet2.Shapes('列表框').ControlFormat

      .RemoveAllItems

      For i = 1 To iRow

      .AddItem Sheet1.Cells(i1)

      Next

      EndWith

      End Sub

      代碼解析:

      AddItem過(guò)程設(shè)置使用AddItem方法添加為工作表中使用窗體控件添加的列表框添加列表項(xiàng)。

      其中第5行代碼使用ControlFormat屬性來(lái)返回窗體控件,第6行代碼使用RemoveAllItems方法刪除窗體控件中的列表框的所有數(shù)據(jù)項(xiàng),如果控件是ActiveX 列表框則需要使用Clear方法。

      110 去除列表框數(shù)據(jù)源的重復(fù)值和空格

      列表框的數(shù)據(jù)源引用工作表的數(shù)據(jù)時(shí),如果工作表數(shù)據(jù)有重復(fù)值和空格,列表框也會(huì)出現(xiàn)重復(fù)值和空格。

      為了在窗體顯示時(shí)去除列表框的重復(fù)值和空格,可以使用Add方法,如下面的代碼所示。

      Private Sub UserForm_Initialize()

      On ErrorResume Next

      DimCol As New Collection

      Dimrng As Range,arr

      Dimi As Integer

      ForEach rng In Range('A1:A' & [a65536].End(xlUp).Row)

      If Trim(rng) <> ““ Then

      Col.Add rngkey:=CStr(rng)

      End If

      Next

      ReDimarr(1 To Col.Count)

      Fori = 1 To Col.Count

      arr(i) = Col(i)

      Next

      Me.ListBox1.List= arr

      End Sub

      代碼解析:

      窗體的初始化事件,去除列表框引用工作表數(shù)據(jù)中的重復(fù)值和空格。

      2行代碼,錯(cuò)誤處理語(yǔ)句,忽略錯(cuò)誤。

      3行到第5行代碼,聲明變量類(lèi)型。

      6行到第9行代碼代碼,在列表框引用的工作表數(shù)據(jù)中循環(huán),把工作表數(shù)據(jù)源中的空格去除后使用Add方法添加到變量Col中。Add方法添加一個(gè)成員到Collection 對(duì)象,語(yǔ)法如下:

      object.Add item,key,beforeafter

      參數(shù)object是必需的,一個(gè)有效的對(duì)象。

      參數(shù)Item是必需的,任意類(lèi)型的表達(dá)式,指定要添加到集合中的成員。

      參數(shù)Key是可選的,唯一字符串表達(dá)式,指定可以使用的鍵字符串,代替位置索引來(lái)訪問(wèn)集合中的成員。

      如果指定的key和集合中現(xiàn)有成員的key發(fā)生重復(fù),則會(huì)導(dǎo)致錯(cuò)誤發(fā)生。所以在第2行代碼中使用錯(cuò)誤處理語(yǔ)句,忽略錯(cuò)誤,繼續(xù)執(zhí)行下一句代碼,這樣就將數(shù)據(jù)源中的重復(fù)值去除。

      參數(shù)before是可選的,指定集合中的相對(duì)位置。在集合中將添加的成員放置在before參數(shù)識(shí)別的成員之前。如果參數(shù)是數(shù)值表達(dá)式,則before必須是介于 1和集合Count屬性值之間的值。如果參數(shù)是字符串表達(dá)式,則當(dāng)添加一個(gè)被引用的成員到集合時(shí),before 必須對(duì)應(yīng)于指定的key值。可以指定before位置或after位置,但不能同時(shí)指定這兩個(gè)位置。

      參數(shù)after是可選的,指定集合中的相對(duì)位置。在集合中將添加的成員放置在After參數(shù)識(shí)別的成員之后。如果參數(shù)是數(shù)值表達(dá)式,則after必須是介于 1和集合Count屬性值之間的值;如果參數(shù)是字符串表達(dá)式,則當(dāng)添加一個(gè)被引用的成員到集合時(shí),after 必須對(duì)應(yīng)于指定的key值。可以指定before位置或after位置,但不能同時(shí)指定這兩個(gè)位置。

      10行到第14行代碼,重新定義數(shù)組arr大小,把Col中數(shù)據(jù)賦給數(shù)組。

      15行代碼,把數(shù)組arr復(fù)制到列表框中。

      運(yùn)行窗體,窗體中的列表框引用去除重復(fù)值和空格后的工作表數(shù)據(jù)。

      111 移動(dòng)列表框條目

      將列表框中的條目進(jìn)行上下移動(dòng),如下面的代碼所示。

      Dim Intlist As Integer

      Dim Strlist As String

      Private Sub CommandButton1_Click()

      WithMe.ListBox1

      Intlist = .ListIndex

      Select Case Intlist

      Case -1

      MsgBox '請(qǐng)選擇一行后再移動(dòng)!'

      Case 0

      MsgBox '已經(jīng)是最上一行了!'

      Case Is > 0

      Strlist = .List(Intlist)

      .List(Intlist) = .List(Intlist- 1)

      .List(Intlist - 1) = Strlist

      .ListIndex = Intlist - 1

      End Select

      EndWith

      End Sub

      Private Sub CommandButton2_Click()

      WithListBox1

      Intlist = .ListIndex

      Select Case Intlist

      Case -1

      MsgBox '請(qǐng)選擇一行后再移動(dòng)!'

      Case .ListCount - 1

      MsgBox '已經(jīng)是最下一行了!'

      Case Is < .ListCount - 1

      Strlist = .List(Intlist)

      .List(Intlist) = .List(Intlist +1)

      .List(Intlist + 1) = Strlist

      .ListIndex = Intlist + 1

      End Select

      EndWith

      End Sub

      代碼解析:

      1、2行代碼在模塊頂部聲明兩個(gè)變量分別用于保存列表框當(dāng)前選中行的索引和內(nèi)容。

      3行到第18行代碼,將列表框當(dāng)前選中行的內(nèi)容上移一行的代碼。其中第5行代碼使用變量Intlist保存列表框當(dāng)前選中行的索引號(hào),第6行代碼判斷索引號(hào),,第78行代碼如果變量Intlist值為-1 ,說(shuō)明當(dāng)前沒(méi)有選中的行,顯示一個(gè)消息框進(jìn)行提示。第9、10行代碼變量Intlist值為0 ,說(shuō)明當(dāng)前選中的行已是第一行了。

      列表框的ListIndex屬性指定當(dāng)前選中的列表框或組合框條目,語(yǔ)法如下:

      object.ListIndex [=Variant]

      參數(shù)object是必需的,一個(gè)有效的對(duì)象。

      參數(shù)Variant是可選的,控件中當(dāng)前被選的條目。

      11行到第15行代碼將當(dāng)前選中的行向下移動(dòng)一行,其中第12行代碼將當(dāng)前選中的行的內(nèi)容賦給變量Strlist,第13行代碼將當(dāng)前選中行的內(nèi)容更改為下面一行的內(nèi)容,第14行代碼將當(dāng)前選中行的下面一行的內(nèi)容更改為變量Strlist保存的內(nèi)容,第15行代碼將選中行向下移動(dòng)一行,這樣就將當(dāng)前選中的行向下移動(dòng)了一行。

      19行到第34行代碼將當(dāng)前選中的行向上移動(dòng)一行。

      將移動(dòng)后的列表框條目保存到工作表中的代碼如下:

      Private Sub CommandButton3_Click()

      Dimi As Integer

      Fori = 1 To ListBox1.ListCount

      Sheet1.Cells(i + 1,1) = ListBox1.List(i - 1)

      Next

      End Sub

      代碼解析:

      窗體中“保存”按鈕的單擊過(guò)程,將移動(dòng)后的列表框條目保存到工作表。

      3行到第5行代碼使用For...Next 語(yǔ)句循環(huán)遍歷列表框所有條目,將List屬性返回的列表框的列表?xiàng)l目寫(xiě)入到工作表中。List屬性返回或設(shè)置列表框或組合框的列表?xiàng)l目數(shù),語(yǔ)法請(qǐng)參閱▲109-2。


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

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多