首页 > 解决方案 > 检查在 Userform Txtbox 中输入的值是否存在于同一工作簿的工作表的列中

问题描述

运行时错误“-2147417848 (80010108)”:

我收到此错误消息(自动化错误调用的对象已与其客户端断开连接。”

代码很简单(我认为)。我有一个用户表单(frmFolderNo)。用户窗体上有一个文本框 (txtLIMSFNo),用户在其中输入文件夹编号 (FolderNo)。然后,我使用 AfterUpdate 检查 FolderNo 是否存在。如果没有,它会执行 QueryLIMS 子程序。当我只执行该代码而不检查 FolderNo 是否存在时,它运行良好,但是当我添加检查功能时,我的问题出现了。如果它已经存在,我只想设置一个变量 (FolderNumExists) true,通过 msgbox 通知用户,然后选择相关行进行编辑。然后循环应该退出。如果 FolderNum 不存在,应执行 QueryLIMS 子程序。如果它确实存在,则会出现消息框并选择该行,但是最后我会收到此错误(当 End Sub 行执行时)。而通常,Excel 崩溃并重新启动或必须重新启动。我到底错过了什么?顺便说一句,当 FolderNum 不存在时,它仍然可以正常工作。

>Private Sub txtLIMSFNo_AfterUpdate()
    folderNo = txtLIMSFNo.Value
    
    Dim LastRow As Long
    Dim sht As Worksheet
    Set sht = ThisWorkbook.Sheets("Current_Samples")
    'Check to see if FolderNo exists in "Current Samples" Tab
    'Determine lastrow on "Current Samples" Tab
    sht.Activate
    LastRow = sht.Range("A1").End(xlDown).Row
    
    Dim i As Integer
    For i = 1 To LastRow
        If ThisWorkbook.Sheets("Current_Samples").Cells(i, 1).Value = 
        folderNo Then
            'This folder already exists in the spreadsheet.  It will now be 
            selected to facilitate editing
                ThisWorkbook.Sheets("Current_Samples").Rows(i & ":" & 
                 i).Select
                FolderNumExists = True
                Me.Hide
                MsgBox "This FolderNo exists already.  It is now selected 
                for Editing."
                Exit For
        End If
        Next i
        If FolderNumExists = False Then
            QueryLIMS
        End If
End Sub 

标签: excelvba

解决方案


推荐阅读