Corretc Excel VBA宏以文本和日期形式返回值

问题描述:

我需要一些帮助。我有一个宏来安排一些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以正面显示零。

使用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的屏幕上,这就是为什么格式非常重要,否则系统会指出错误。 –