Excel 使用VBA在一个单元格中放置多个条形码,同时保留删除和撤消功能。

Excel 使用VBA在一个单元格中放置多个条形码,同时保留删除和撤消功能。,excel,vba,Excel,Vba,在试图找到一个将多个条形码放入一个单元格的解决方案时,我发现了一个几年前提出的解决方案 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Intersect(Target, Range("C2:C10")) Is Nothing Then On Error GoTo Fìn Application.Enabl

在试图找到一个将多个条形码放入一个单元格的解决方案时,我发现了一个几年前提出的解决方案

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("C2:C10")) Is Nothing Then
        On Error GoTo Fìn
        Application.EnableEvents = False
        Dim vNew As Variant
        vNew = Target.Value
        Application.Undo
        If Not IsEmpty(Target) Then
            Target = Target.Value & Chr(10) & vNew
        Else
            Target = vNew
        End If
        'Target.Offset(1,0).Activate
    End If
Fìn:
    Application.EnableEvents = True
End Sub
用户提供

我现在面临的问题就像三年前评论中所说的那样。这将终止对单元格的撤消和任何编辑,并在尝试使用搜索功能查找单元格时引发错误


我不熟悉VBA,但如果有人能提供一些帮助,我将不胜感激

另一种方法是,在选择单元格时,使用
工作表\u SelectionChange
事件捕获“Previor”值,而不是使用“撤消”来还原单元格。为便于将来参考,无法撤消对宏所做的更改(如ctrl+z)。必须使用变通方法(正如@TimWilliams所建议的)谢谢,我没有意识到这一点。在这种情况下,是什么阻止了对单元格进行编辑。在扫描代码后,如果扫描到重复代码,则无法删除或编辑该代码。如果您尝试这样做,单元格将只复制它,您将得到三个而不是一个副本。以及无法清除的单元格本身。