2015-08-28 99 views
1

我需要一些幫助。我有一個宏來安排一些DATAS如下:Corretc Excel VBA宏以文本和日期形式返回值

Sub Espelho_OM() 

Dim Linha As Integer 
Dim Data_Vencimento As String 
Dim N1 As String 
Dim N2 As String 
Dim N3 As String 
Dim N4 As String 
Dim N5 As String 
Dim N6 As String 
Dim N7 As String 
Dim N8 As Double 
Dim i As Integer 

Sheets(2).Cells.Clear 

Sheets(1).Select 

    Cells(100000, 1).End(xlUp).Select 
    Linha = ActiveCell.Row - 1 

    For i = 1 To Linha 
    N1 = Sheets(1).Cells(i + 1, 1) 
    N2 = Sheets(1).Cells(i + 1, 2) 
    N3 = Sheets(1).Cells(i + 1, 3) 
    N4 = Sheets(1).Cells(i + 1, 4) 
    N5 = Sheets(1).Cells(i + 1, 5) 
    N6 = Sheets(1).Cells(i + 1, 6) 
    N7 = Sheets(1).Cells(i + 1, 7) 
    N8 = Sheets(1).Cells(i + 1, 8) 
    Sheets(2).Cells(1 + (i - 1) * 38, 1) = N1 
    Sheets(2).Cells(2 + (i - 1) * 38, 1) = N2 
    Sheets(2).Cells(4 + (i - 1) * 38, 1) = N3 
    Sheets(2).Cells(5 + (i - 1) * 38, 1) = N4 
    Sheets(2).Cells(6 + (i - 1) * 38, 1) = N5 
    Sheets(2).Cells(7 + (i - 1) * 38, 1) = N6 
    Sheets(2).Cells(8 + (i - 1) * 38, 1) = N7 
    Sheets(2).Cells(10 + (i - 1) * 38, 1) = N8 




Next 

    Sheets(2).Select 

End Sub 

我需要的colums N5和N5記錄格式DDMMYY的數據,以及N1準確記錄數據,因爲它是在紙板(1) (00050661),這可能嗎?

今天,列nn5和n6將以dd/mm/yy顯示,列N1將從50661以正面顯示零。

回答

0

使用range.numberformat這樣的:

Sheets(2).Cells(6 + (i - 1) * 38, 1).numberformat = "ddmmyy" 

與其他的數字格式將在零點 「00000000」 所需的位數

,你也可以嘗試:

Sheets(2).Cells(6 + (i - 1) * 38, 1) = "'" & N5 

通過增加「'」&它將強制數字保持字符串。

+0

首先感謝您的快速回答。它沒有工作,但我認爲我不清楚這個問題。例如,表單(1)中的列N5具有以下數據01/03/2015當我運行宏時,我希望此數據變爲010315.與N1相同,當我運行它時,數據爲00050667變爲50667並且我想保持00050667.在此先感謝 –

+0

@MarcosViniciusdosSantos是否有一個原因使用變量作爲中間人?你不能簡單地直接把兩個單元等同起來嗎? –

+0

我會用它粘貼在ERP的屏幕上,這就是爲什麼格式非常重要,否則系統會指出錯誤。 –