从String&中删除文本保持领先数字

时间:2015-01-23 16:43:49

标签: excel vba excel-vba

我正试图找到一种从包含前导号码的单元格中删除文本字符串的方法,因为我需要的是数字,以便在数据透视表中使用它。

以下是数据的示例。

5 or more times
1 time
3 times
2 times

此数据位于“BI”列中,并存储在名为“DB”的工作表中。

我有一个宏来从日期/时间格式化的列中删除时间,如果我可以一个接一个地运行,那就太棒了。

以下是从日期/时间中移除时间的代码。

Sub ToDate()
Dim LR As Long, i As Long

Sheets("DB").Select

LR = Range("N" & Rows.Count).End(xlUp).Row
For i = 2 To LR
    With Range("N" & i)
        .NumberFormat = "mm/dd/yyy"
        .Value = DateValue(.Value)
    End With
Next i

Sheets("Tasks").Select
GoTo Fin:

Fin:
MsgBox ("Process Completed")

End Sub

3 个答案:

答案 0 :(得分:3)

如果在使用号码后总是有空格

' Check that cell has a value
if .Value <> "" Then   
    .Value = Left(.Value,Instr(.Value," ")-1)
Endif

使用-1删除空格

答案 1 :(得分:1)

这将返回字符串开头的所有内容,直到空格字符。 - 1很重要的原因是您不希望最终结果中出现空格字符。

With Range("BI" & i)
    .Value = Left(.Value, InStr(.Value, " ") - 1)
End With

答案 2 :(得分:1)

这也有效:

if .Value <> "" Then   
    .Value = Split(.Value, " ")(0)
Endif