VBA Excel – 提取整列的前10个字符

我想从整列(B列)中的所有单元格中提取前10个字符。 单元格的格式如下:

2014-09-03 08:00:00

我希望他们都是这样的:

2014年9月3日

我的代码如下所示:

Sub AdjustDate() Dim NewDate As String For Counter = 1 To 1000000 Set NewDate = Left(Cells(Counter, 2), 10) Cells(Counter, 2).Value = NewDate Next Counter End Sub 

我不是VBA的主人,我不知道我做错了什么。

将感谢帮助!

分配对象时使用Set 。 由于一个stringvariables不是一个对象, Set应该被Letreplace或者全部放在一起。

在你的情况下,你不需要将10个第一个字符定义为stringvariables,然后用该variables的值replace单元格。 你可以做,而只是做:

 For Counter = 1 To 1000000 Cells(Counter, 2).Value = Left(Cells(Counter, 2), 10) Next Counter 

我怀疑这与格式有关,因为date通常被存储为1900年1月1日之后的几天,然后被格式化为任何你喜欢的

也同意以上,不需要在这种情况下使用“设置”而不用修改对象