2014-09-23 28 views
0

我想從整列(B列)中的所有單元格中提取前10個字符。 細胞是在格式日期:VBA Excel - 提取整列的前10個字符

2014年9月3日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沒有高手,我不能找出我做錯了..

感謝您的幫助!

+2

如果您將'Set'更改爲'Let',或完全刪除它,它會工作嗎? – Ioannis 2014-09-23 19:48:42

+0

那麼你得到的錯誤或行爲是什麼? – bowlturner 2014-09-23 19:49:03

+1

只是改變單元格的格式會不會更容易?爲什麼你需要徹底剝離日期? – dnLL 2014-09-23 19:55:50

回答

1

Set分配對象時使用。由於字符串變量不是對象Set應該被替換爲Let或全部放在一起。

在你的情況下,你不需要將10個第一個字符定義爲一個字符串變量,然後用該變量的值替換該單元格。你可以,而不是僅僅做:

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

謝謝!真的有幫助! – Gustav 2014-09-25 13:25:59

0

我懷疑這與格式做,因爲日期的天數過去的1900年1月1日再格式化是任何你喜歡的

也同意通常存儲與上述,不需要在這種情況下使用「設置」W/O有一個對象修改