Vba 从列中的单元格中删除额外的空格

Vba 从列中的单元格中删除额外的空格,vba,excel,excel-2010,Vba,Excel,Excel 2010,我写了下面的代码来进行库存扫描条形码,但是由于某种原因,当我扫描条形码时,它在单元格中添加了额外的空格,结果并没有如预期的那样显示出来 如何从列中的单元格中删除多余的空格 Option Explicit Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target.Cells.Count > 1 Or IsEmpty(Target) Or Target.Column &l

我写了下面的代码来进行库存扫描条形码,但是由于某种原因,当我扫描条形码时,它在单元格中添加了额外的空格,结果并没有如预期的那样显示出来

如何从列中的单元格中删除多余的空格

Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

    If Target.Cells.Count > 1 Or IsEmpty(Target) Or Target.Column <> 1 Then Exit Sub

    If Not SheetExists("WarehouseInventory") Then Exit Sub

    Dim result As Variant

    Set result = Sheets("WarehouseInventory").Cells.Range("E:E").Find(Target)

    If result Is Nothing Then
       Target.Worksheet.Cells(Target.Row, 2) = "Data Maybe Bin #?"
    Else
        Target.Worksheet.Cells(Target.Row, 2) = result.Worksheet.Cells(result.Row, 4)
        Target.Worksheet.Cells(Target.Row, 3) = result.Worksheet.Cells(result.Row, 5)
        Target.Worksheet.Cells(Target.Row, 4) = result.Worksheet.Cells(result.Row, 6)
        Target.Worksheet.Cells(Target.Row, 5) = result.Worksheet.Cells(result.Row, 7)
    End If

End Sub

Public Function SheetExists(SheetName As String) As Boolean
    Dim ws As Worksheet
    SheetExists = False

    For Each ws In ThisWorkbook.Worksheets
        If ws.Name = SheetName Then SheetExists = True
    Next ws

End Function
条形码将在A列上扫描


这是一个用于修剪多余空间单元格的代码

Dim cell As Range
For Each cell In ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)
cell = WorksheetFunction.Trim(cell)
Next cell
上面的代码将修剪ActiveSheet中的所有单元格。 选择要修剪的适当单元格,并在其上应用Trimcell。

这是一个用于修剪多余空间单元格的代码

Dim cell As Range
For Each cell In ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)
cell = WorksheetFunction.Trim(cell)
Next cell
上面的代码将修剪ActiveSheet中的所有单元格。 选择要修剪的适当单元格,并在其上应用Trimcell。

当我扫描条形码时,会在单元格中添加额外的空格,结果不会如预期的那样显示出来

我们的想法不是稍后修剪所有单元格,而是在扫描时修剪条形码条目。这是你想要的吗?将其放入相关表格的代码区域。我假设条形码将以B列到E列进行扫描

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Whoa

    If Target.Cells.Count > 1 Then Exit Sub

    Application.EnableEvents = False

    '~~> Assuming that the bar code is scanned in B to E
    '~~> If it is Just one column like B then change
    '~~> The code below to
    '~~> If Not Intersect(Target, Columns("B:B")) Is Nothing Then    
    If Not Intersect(Target, Columns("B:E")) Is Nothing Then
        Target.Value = Trim(Target.Value)
    End If

Letscontinue:
    Application.EnableEvents = True
    Exit Sub
Whoa:
    MsgBox Err.Description
    Resume Letscontinue
End Sub
当我扫描条形码时,会在单元格中添加额外的空格,结果不会如预期的那样显示出来

我们的想法不是稍后修剪所有单元格,而是在扫描时修剪条形码条目。这是你想要的吗?将其放入相关表格的代码区域。我假设条形码将以B列到E列进行扫描

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Whoa

    If Target.Cells.Count > 1 Then Exit Sub

    Application.EnableEvents = False

    '~~> Assuming that the bar code is scanned in B to E
    '~~> If it is Just one column like B then change
    '~~> The code below to
    '~~> If Not Intersect(Target, Columns("B:B")) Is Nothing Then    
    If Not Intersect(Target, Columns("B:E")) Is Nothing Then
        Target.Value = Trim(Target.Value)
    End If

Letscontinue:
    Application.EnableEvents = True
    Exit Sub
Whoa:
    MsgBox Err.Description
    Resume Letscontinue
End Sub

这里已经解决了相同的问题这里已经解决了相同的问题是的,想法是在扫描时修剪条形码条目,谢谢-你知道了。对于Col A,如果不是目标,它会变成,如果您正在扫描条形码,那么第1列可能对您没有任何用处:PYes这个想法是在扫描时修剪条形码条目,谢谢-您知道了。对于A列,如果不与目标相交,则第1列可能对您没有任何用处。如果您正在扫描条形码,那么第1列可能对您有用处:P