首页 > 解决方案 > Listbox_Click 在选择新条目之前运行命令

问题描述

是否可以在用户单击列表框项目(在用户表单中)和被选择的项目之间运行命令?

我有一个带有列表框作为索引的掩码,并且希望在用户转到另一个项目时使其成为可能,条目会自动保存。目前我正在使用按钮执行此操作,但我想防止用户转到其他项目并丢失输入的所有信息,因为他忘记按下按钮。

如果您单击列表框,我的代码:

Private Sub ListBox1_Click()
   Dim lrow As Long        
     Values_delete  'Sub that clears all text boxes          
     If ListBox1.ListIndex >= 0 Then    
         lrow = 2 
         Do While Trim(CStr(Tabelle10.Cells(lrow, 1).Value)) <> ""              
             If ListBox1.Text = Trim(CStr(Tabelle10.Cells(lrow, 1).Value)) Then            
                 Values_read (lrow) 'values get read from the excel cells and written into the text boxes            
                 Exit Do            
             End If        
             lrow = lrow + 1
         Loop
     End If
End Sub

以及我的保存按钮代码:

Public Sub SaveButton_Click()
           Dim lrow As Long
           If ListBox1.ListIndex = -1 Then Exit Sub          
           If Trim(CStr(Abteilung.Text)) = "" Then               
               MsgBox "Error", vbCritical + vbOKOnly, "Error"
               Exit Sub
           End If
           lrow = 2 
           Do While Trim(CStr(Tabelle10.Cells(lrow, 1).Value)) <> ""
               If ListBox1.Text = Trim(CStr(Tabelle10.Cells(lrow, 1).Value)) Then
                   Values_write (lrow)  'Values get written into the cells               
                   If ListBox1.Text <> Trim(CStr(Abteilung.Text)) Then
                       Call UserForm_Initialize
                       If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
                   End If                  
                   Exit Do                  
               End If          
               lrow = lrow + 1 
           Loop
    End Sub

这甚至可能吗?

标签: excelvba

解决方案


尝试MouseDown在更新任何内容之前触发的事件。当您单击一个新项目, .Selected.Listindex指向 中的上一个项目时Mousedown。然后您可以使用MouseMove事件来处理最近选择的项目。


推荐阅读