<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦 > 學習電腦 > 工具軟件 > 辦公軟件學習 > Excel教程 > Excel基礎 >

        使用Excel用戶窗體查找工作表記錄

        時間: admin1 分享

        今天介紹在用戶窗體中查找工作表中滿足特定條件的所有記錄,如下圖所示,在工作表Sheet1中,姓名為“張三”的共有三條記錄,在姓名右側的文本框中輸入“張三”后,將自動顯示第1條記錄的相關內容,然后可以單擊“前一條”和“后一條”按鈕來回顯示相關的記錄。

        首先,使用Find方法根據查找條件查找到滿足條件的所有記錄,并將其賦值給Range變量。接著,使用Property Set語句創建的自定義屬性將Range變量存儲的記錄區域傳遞給用戶窗體。為了確保引用的記錄區域與工作表中出現的順序相同,在Find方法中使用了 After參數并將其值設置為搜索區域的最后一個單元格,這樣Find方法將從單元格區域的第一個單元格開始搜索。

        將用戶窗體命名為UPos,其中的一些控件及其名稱為:姓名文本框(txtName)、工作內容文本框(txtWork)、共有記錄的文本框(txtY)、第幾條記錄的文本框(txtX)、前一條按鈕(cmdPrev)、后一條按鈕(cmdNext),還有一些標簽控件。

        在標準模塊中輸入下列代碼:

        Sub ShowPos()
        Dim ufPos As UPos '用戶窗體變量
        Dim rFound As Range '存儲當前找到的單元格
        Dim rNameRange As Range '要搜索的單元格區域
        Dim sFirstAdd As String '第一個被找到的單元格的地址
        Dim rAllFound As Range '所有找到的單元格
        '從用戶處獲取數據,這里為了介紹方便采用了硬編碼
        Const strName As String = "張三"
        Set rNameRange = Sheet1.Range("A2:A8")
        '查找
        Set rFound = rNameRange.Find(strName, rNameRange(rNameRange.Cells.Count), xlValues, xlWhole)
        '如果找到
        If Not rFound Is Nothing Then
        '存儲第一個找到的單元格的地址
        sFirstAdd = rFound.Address
        '添加找到的單元格到所有找到的單元格區域中
        Set rAllFound = rFound
        '繼續查找直到循環到開始處為止
        Do
        Set rFound = rNameRange.FindNext(rFound)
        If rFound.Address <> sFirstAdd Then
        Set rAllFound = Union(rAllFound, rFound)
        End If
        Loop Until rFound.Address = sFirstAdd
        '創建用戶窗體
        Set ufPos = New UPos
        '傳遞單元格區域到用戶窗體
        Set ufPos.AllFound = rAllFound
        ufPos.Initialize
        ufPos.Show
        Else
        MsgBox "沒有找到匹配的數據!"
        End If
        Set ufPos = Nothing
        End Sub

        在用戶窗體模塊中,聲明一些模塊級的變量來包含傳遞的區域以及當前顯示的區域。

        Private mrAllFound As Range
        Private mrCurrent As Range
        Property Set AllFound(RHS As Range)
        Set mrAllFound = RHS
        End Property

        在顯示用戶窗體之前,要初始化該窗體,使用查找到的第一條記錄填充窗體中的相應控件。

        Public Sub Initialize()
        '設置當前記錄為第一條記錄
        If Not mrAllFound Is Nothing Then
        Set mrCurrent = mrAllFound(1)
        Me.txtName.Text = mrCurrent.Value
        Me.txtWork.Text = mrCurrent.Next.Value
        Me.txtY.Text = mrAllFound.Cells.Count
        Me.txtX.Text = 1
        End If
        End Sub

        前一條按鈕和后一條按鈕使用FindPrevious方法和FindNext方法將記錄移動到合適的位置。

        Private Sub cmdNext_Click()
        '設置當前單元格
        Set mrCurrent = mrAllFound.FindNext(mrCurrent)
        Me.txtName.Text = mrCurrent.Value
        Me.txtWork.Text = mrCurrent.Next.Value
        '增加計數器值
        Me.txtX.Text = Me.txtX.Text + 1
        End Sub
        Private Sub cmdPrev_Click()
        Set mrCurrent = mrAllFound.FindPrevious(mrCurrent)
        Me.txtName.Text = mrCurrent.Value
        Me.txtWork.Text = mrCurrent.Next.Value
        Me.txtX.Text = Me.txtX.Text - 1
        End Sub

        最后,當第幾條文本框中的值變化時,啟用或禁用按鈕使得用戶不能試圖到達不存在的記錄。

        Private Sub txtX_Change()
        '啟用/禁用按鈕
        If Me.txtX.Text = 1 Then
        Me.cmdPrev.Enabled = False
        Else
        Me.cmdPrev.Enabled = True
        End If
        If Me.txtX.Text = Me.txtY.Text Then
        Me.cmdNext.Enabled = False
        Else
        Me.cmdNext.Enabled = True
        End If
        End Sub

        11596 主站蜘蛛池模板: 欧美老熟妇乱子伦牲交视频| AV老司机色爱区综合| 就去色综合| 国产午夜福利av在线麻豆| 亚洲丰满熟女一区二区v| 激情内射亚州一区二区三区爱妻 | 五月天丁香婷婷亚洲欧洲国产| 人妻聚色窝窝人体WWW一区| 欧美成人午夜在线观看视频| 亚洲av色欲色欲www| 韩国三级网一区二区三区| 亚洲精品乱码在线观看| 亚洲最大成人美女色av| 奇米网777狠狠狠俺| 年轻女教师hd中字3| 欧乱色国产精品兔费视频| 日本经典中文字幕人妻| 大地资源免费视频观看| 久久久噜噜噜久久中文福利| 中文字幕人妻中出制服诱惑| 开心五月婷婷综合网站| 国产成人久久综合第一区| 成人av一区二区三区| 性欧美三级在线观看| 久久99九九精品久久久久蜜桃| 色噜噜亚洲黑人www视频| 人妻少妇邻居少妇好多水在线| 久久国产亚洲一区二区三区| 中文字幕人妻精品在线| 国产丰满麻豆videossexhd| 国产av无码专区亚洲av软件| 久久久噜噜噜久久久精品| 蜜臀av一区二区国产在线| 天堂一区二区三区av| 国产精一区二区黑人巨大| 国产极品精品自在线不卡| 亚洲在战av极品无码| 免费观看在线A级毛片| 美女一区二区三区在线观看视频| 乱人伦中文视频在线| 久久中精品中文字幕入口|