2017-06-12 121 views
1

我還是VBA新手,需要幫助我的代碼。我目前正試圖在一個實際的宏中編寫多個宏。我試圖從B5列開始的所有日期從B列開始,並將它們從A5開始放入另一列A列。問題是,列B中的所有日期都是(01/24/17)類型格式,當我只需要A列文本中的月份名稱時,我還需要公式繼續,直到最後一個單元格的值爲列B. 這裏是我迄今爲止,它似乎並沒有工作:Excel VBA:如何從列的所有單元格提取日期並將文本放入另一列?

Sub Macro7() 
    Worksheets("mac2").Range("A5:A1000").Formula = "=text(if($B5>0,$B5,"""")" 
End Sub 

同樣,我很新的VBA和我知道,硬編碼範圍和這樣是不是最好的主意。如果您還可以指導我訪問一個教授基本VBA的網站,那將非常值得讚賞。

+0

至於動態端的代碼見[HERE](https://stackoverflow.com/questions/11169445/error-in-發現最後使用細胞在VBA)的信息尋找最後一個細胞。 –

+0

對不起,整個公式應該是''= if($ B5> 0,text($ B5,「」mmmm「」),「」「」)「' –

回答

1

也許,如果您的B列的值是文本,然後這樣

Sub Macro7() 
Dim vDB, vR() 
Dim i As Long, y As Integer, m As Integer, d As Integer 
Dim R As Long 
    With Worksheets("mac2") 
     vDB = .Range("b5", .Range("b" & Rows.Count).End(xlUp)) 
    End With 
    R = UBound(vDB, 1) 
    ReDim vR(1 To R, 1 To 1) 
    For i = 1 To R 
     If vDB(i, 1) > 0 Then 
      vR(i, 1) = Format(vDB(i, 1), "mmmm") 
     End If 
    Next i 
    Worksheets("mac2").Range("a5").Resize(R) = vR 
End Sub 
+0

感謝您的快速響應。當我嘗試運行,它說「運行時錯誤」6「溢出」 – cthallofamer

+0

是你的一天(01/24/17)文本值或日期值? –

+0

和「(」存在或沒有? –

相關問題