我真的不明白为什么会发生这种情况以及为什么会出现在我的工作表中。
要从某些单元格中删除第一个空格,请使用以下代码:
Sub RoundedRectangle5_Click()
Dim Cel As Range, Rng As Range
Set Rng = Range("B7:C37")
For Each Cel In Rng
If IsEmpty(Cel.Value) = False Then
Cel.Value = Right(Cel.Value, Len(Cel.Value) - 1)
End If
Next Cel
End Sub
但是在我有数据的特定单元格中,使用此代码后,日期和月份切换如下:如果初始数据为10-04-2017
,则代码更改为04-10-2017
。我认为只有格式改变了,但数据实际上从4月10日变为10月4日。任何人都知道为什么会发生这种情况?
答案 0 :(得分:0)
以下是对代码的修改。
space
的日期?MID
函数,该函数在VBA中具有可选的length
参数。For Each Cel In Rng
If IsEmpty(Cel.Value) = False Then
If IsDate(Cel.Value) And _
Left(Cel.Text, 1) = Chr(32) Then
Cel.TextToColumns Destination:=Cel, DataType:=xlDelimited, _
Tab:=False, semicolon:=False, comma:=False, Space:=True, other:=False, _
fieldinfo:=Array(Array(1, xlSkipColumn), Array(2, xlDMYFormat))
Else
Cel.Value = Mid(Cel.Text, 2)
End If
End If
Next Cel
还有其他转换方法。如果您确定分隔符,则可以使用Split
函数并使用Dateserial
e.g:
Dim V as variant
For Each Cel In Rng
If IsEmpty(Cel.Value) = False Then
If IsDate(Cel.Value) Then
V = Split(Mid(Cel.Text, 2), "-")
Cel.Value = DateSerial(V(2), V(1), V(0))
Else
Cel.Value = Mid(Cel.Text, 2)
End If
End If
Next Cel