拖动到其他单元格时,从下拉列表中选择后可以更改单元格中的值

问题描述 投票:0回答:1

我有一个下拉列表,我可以在其中选择一个人的全名,当我选择一个名字时,它应该在单元格中显示缩写。

我以某种方式得到了这个工作,但我现在的问题是我希望能够拖动以填充到其他单元格。

稍微调整我的代码,但我让它可以工作,但我仍然收到错误消息。

错误 13:类型不匹配

Example

这是我正在使用的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    selectedVal = Target.Value
        If Target.Value = "" Then Exit Sub
        selectedNum = Application.VLookup(selectedVal, Worksheets("Bestuurders").Range("Omschrijving"), 2, False)

        If Not IsError(selectedNum) Then
            Target.Value = selectedNum
        End If

End Sub 

我该怎么做才能确保我不会收到此错误消息?

excel vba drag-and-drop vlookup worksheet-function
1个回答
0
投票

我找到了一个可行的解决方案。这是我使用的代码。

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub ' Voorkom meerdere celwijzigingen tegelijk
    
    Dim selectedVal As String
    selectedVal = Target.Value
    
    If selectedVal = "" Then Exit Sub
    
    Dim wsBestuurders As Worksheet
    Set wsBestuurders = Worksheets("Bestuurders")
    
    Dim selectedNum As Variant
    selectedNum = Application.VLookup(selectedVal, wsBestuurders.Range("Omschrijving"), 2, False)
    
    If Not IsError(selectedNum) Then
        Application.EnableEvents = False ' Schakel gebeurtenissen tijdelijk uit om een oneindige lus te voorkomen
        Target.Value = selectedNum
        Application.EnableEvents = True ' Schakel gebeurtenissen weer in
    End If
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    ' Voorkom dat de code wordt uitgevoerd bij dubbelklikken
    Cancel = True
End Sub
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.