从字符串中删除文本并保留前导数字
Remove Text from String & Keep Leading Number
我正在尝试找到一种方法从包含前导数字的单元格中删除文本字符串,因为我需要的只是数字以便在数据透视表中使用它 table。
这是数据示例。
5 or more times
1 time
3 times
2 times
此数据位于 "BI" 列中,并存储在名为 "DB" 的工作表中。
我有一个宏可以从 date/time 格式的列中删除时间,如果我可以 运行 一个接一个地删除时间,那就太好了。
这是从 date/time.
中删除时间的代码
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
如果数字后面总是有一个space使用
' Check that cell has a value
if .Value <> "" Then
.Value = Left(.Value,Instr(.Value," ")-1)
Endif
使用-1删除space
这将 return 字符串开头的所有内容,直到 space 个字符。 - 1
很重要的原因是您不想在最终结果中使用 space 字符。
With Range("BI" & i)
.Value = Left(.Value, InStr(.Value, " ") - 1)
End With
这也行得通:
if .Value <> "" Then
.Value = Split(.Value, " ")(0)
Endif
我正在尝试找到一种方法从包含前导数字的单元格中删除文本字符串,因为我需要的只是数字以便在数据透视表中使用它 table。
这是数据示例。
5 or more times
1 time
3 times
2 times
此数据位于 "BI" 列中,并存储在名为 "DB" 的工作表中。
我有一个宏可以从 date/time 格式的列中删除时间,如果我可以 运行 一个接一个地删除时间,那就太好了。
这是从 date/time.
中删除时间的代码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
如果数字后面总是有一个space使用
' Check that cell has a value
if .Value <> "" Then
.Value = Left(.Value,Instr(.Value," ")-1)
Endif
使用-1删除space
这将 return 字符串开头的所有内容,直到 space 个字符。 - 1
很重要的原因是您不想在最终结果中使用 space 字符。
With Range("BI" & i)
.Value = Left(.Value, InStr(.Value, " ") - 1)
End With
这也行得通:
if .Value <> "" Then
.Value = Split(.Value, " ")(0)
Endif