在工作表中,我将一些旧数据存储为管道分隔的字符串。将存储的管道分隔字符串转换回日期,从中删除逗号(小数点分隔符)
用于存储数据的功能是这样的:
target_cell.Offset(0, i) = Join(Application.WorksheetFunction.Transpose(source_range(i).Resize(, 1)), "|")
的正常工作,并产生一个字符串,看起来像这样:现在
42145,5416666662|42145,6249999996|42145,2083333329|42144,8333333329|42145,9999999996
,有时,我想有一个看看我的旧数据,并因此尝试将其写入工作表。我的代码行这部分看起来是这样的:
temp_arr = Split(source_cell.Offset(0, i), "|", -1, vbTextCompare)
target_range(i).Resize(, 1) = Application.WorksheetFunction.Transpose(temp_arr)
For Each c In target_range(i).Resize(, 1)
If Not IsEmpty(c) Then
c = CDate(c)
c.NumberFormat = "dd. mmm kl. hh"
End If
Next
但是,我上线c = CDate(c)
溢出错误,当我看着表,我觉得值是,421456249999996
等,换句话说,看起来这些逗号已经从将它们写回工作表的方式中的某些值中删除了。
你们有没有人知道在这个过程中的哪一步删除逗号,以及我能做些什么来避免这种情况?
有什么办法可以避免它被剥离?或者我应该重新插入单元格左边的5个字符(我认为大多数日期应该在40000年)?除非有人在这里提出了另一个好的解决方案,我认为这可能就是我所追求的。 – eirikdaude
@eirikdaude **您必须试验**由于我的区域设置,我无法复制您的问题。 –
我已经做了一些,已经;)会看到我能弄清楚,但。 – eirikdaude