如何从" "中拆分单元格内容,删除"x"并只留下数字?

  • 本文关键字:数字 删除 拆分 单元格 excel vba
  • 更新时间 :
  • 英文 :


我试图拆分单元格的内容,但遇到了问题。单元格内容为:

样品_1 10x

样品_2 5x

样品_3 100x

我需要删除除";x〃;。这些数字将显示在另一个单元格中,然后用于计算。

最初,我的代码是:

For Each unit In Range("SD")
If unit.Offset(0, -19).Value <> "Unknown" Then
unit.Value = "N/A"
End If
If unit.Offset(0, -19).Value = "Unknown" Then
If unit.Offset(0, -20).Value Like "*Sample*" Then
unit.Value = Left(Right(unit.Offset(0, -20), 3), 2)
End If
End If 

然而,这个公式只适用于"0"之前的1或2位数字;x〃;,而不是3位数字。有没有一种方法可以在空间所在的位置拆分内容;x〃;从内容中,并留下数字?

Ex。

"样品_ 1 10x";

在有空位的地方分开,留下下半场:";10x";

删除";x〃;

留下";10〃;

您可以使用SplitVal:

For Each unit In Range("SD")
If unit.Offset(0, -19).Value <> "Unknown" Then
unit.Value = "N/A"
End If
If unit.Offset(0, -19).Value = "Unknown" Then
If unit.Offset(0, -20).Value Like "*Sample*" Then
unit.Value = Val(Split(unit.Offset(0, -20).Value & " ", " ")(1))
End If
End If
Next

您可以使用以下公式

=MID(A1,(FIND(" ",A1)+1),LEN(A1)-FIND(" ",A1)-1)

或者,当您的数据位于单元格A1、A2和A3中时,以下代码会显示一个包含10、5和100 的消息框

Sub a()
With Sheets(1).Range("A1")
For i = 0 To .CurrentRegion.Rows.Count - 1
StrData = .Offset(i, 0)
StrData = Left(StrData, Len(StrData) - 1)
MsgBox Mid(StrData, InStr(StrData, " ") + 1)
Next i
End With
End Sub

最新更新