Excel vba convert cell value in dd/mm/yyyy

荒凉一梦 提交于 2019-12-12 03:34:30

问题


I have a problem with date value in excel using vba. I mae a userform that inseret date and other data. When i push the button it insert the date into a cell in a sheet. My problem is that when it copy the date in the textbox it copy it in mm/dd/yyyy instead of dd/mm/yyyy.

Here is the code:

Private Sub ins_stampa_btn_Click()

' FUNZIONALITA' EVENTO BOTTONE "INSERISCI IN STAMPA" DI INSERIMENTO PER LA STAMPA DELLE SPEDIZIONI
' PER DATA, FORNITORE, CORRIERE E MERCE

' CONTROLLO SE IL TEXTBOX DATA E' VUOTO O NON E' UNA DATA
If data_arr_txt = "" Or Not IsDate(data_arr_txt) Then
    MsgBox ("Inserire una Data di Spedizione valida")
    Exit Sub
End If

' CONTROLLO SE IL TEXTBOX DATA E' UNA DATA CONVERTIRLO IN FORMATO ITALIANO
If IsDate(data_arr_txt.Value) Then

    data_arr_txt.Value = Format(data_arr_txt.Value, "dd/mm/yyyy")
End If

MsgBox (data_arr_txt.Value)
lastAddress = lastCell("ORDINI SPEDITI", "A") ' ULTIMA CELLA PIENA DELLA COLONNA A

' COPIA DEI DATI INSERITI NELLA FORM STAMPASPED NEL FOGLIO STAMPA SPEDIZIONI
Sheets("STAMPA SPEDIZIONI").Range("C1048576").End(xlUp).Offset(1, -2).Value = Format(CDate(data_arr_txt.Value), "dd/mm/yyyy")
Sheets("STAMPA SPEDIZIONI").Range("C1048576").End(xlUp).Offset(1, -2).NumberFormat = "dd/mm/yyyy"
Sheets("STAMPA SPEDIZIONI").Range("C1048576").End(xlUp).Offset(1, -2).Interior.color = RGB(255, 255, 0)

Sheets("STAMPA SPEDIZIONI").Range("C1048576").End(xlUp).Offset(1, -1).Value = fornitore_cbx.Value
Sheets("STAMPA SPEDIZIONI").Range("C1048576").End(xlUp).Offset(1, -1).Interior.color = RGB(255, 255, 0)

Sheets("STAMPA SPEDIZIONI").Range("C1048576").End(xlUp).Offset(2, -1).Value = corriere_txt.Value
Sheets("STAMPA SPEDIZIONI").Range("C1048576").End(xlUp).Offset(2, -1).Interior.color = RGB(255, 255, 0)

Sheets("STAMPA SPEDIZIONI").Range("C1048576").End(xlUp).Offset(3, -1).Value = merce_txt.Value
Sheets("STAMPA SPEDIZIONI").Range("C1048576").End(xlUp).Offset(3, -1).Interior.color = RGB(255, 255, 0)

In another sheet i made a similar userform and it copy the date as i want. Could you help me?

Thank you


回答1:


Assign your value to a Date variable before storing it in worksheet.

Dim temp_date as Date
...
temp_date = data_arr_txt.Value
Sheets("STAMPA SPEDIZIONI").Range("C1048576").End(xlUp).Offset(1, -2).Value = temp_date



回答2:


Try this:

Private Sub ins_stampa_btn_Click()

    ' FUNZIONALITA' EVENTO BOTTONE "INSERISCI IN STAMPA" DI INSERIMENTO PER LA STAMPA DELLE SPEDIZIONI
    ' PER DATA, FORNITORE, CORRIERE E MERCE

    Dim wsSS as Sheet
    Set wsSS = ActiveWorkbook.Sheets("STAMPA SPEDIZIONI")
    Dim rangeSS as Range
    Set rangeSS = wsSS.Range("C1048576")
    Dim temp_date as Date

    ' CONTROLLO SE IL TEXTBOX DATA E' VUOTO O NON E' UNA DATA
    If data_arr_txt = "" Or Not IsDate(data_arr_txt) Then
        MsgBox ("Inserire una Data di Spedizione valida")
        Exit Sub
    End If

    ' CONTROLLO SE IL TEXTBOX DATA E' UNA DATA CONVERTIRLO IN FORMATO ITALIANO
    If IsDate(data_arr_txt.Value) Then
        temp_date = Format(data_arr_txt.Value, "dd/mm/yyyy")
    End If

    lastAddress = lastCell("ORDINI SPEDITI", "A") ' ULTIMA CELLA PIENA DELLA COLONNA A

    ' COPIA DEI DATI INSERITI NELLA FORM STAMPASPED NEL FOGLIO STAMPA SPEDIZIONI
    rangeSS.End(xlUp).Offset(1, -2).Value = temp_date
    'rangeSS.End(xlUp).Offset(1, -2).NumberFormat = "dd/mm/yyyy"
    rangeSS.End(xlUp).Offset(1, -2).Interior.color = RGB(255, 255, 0)

    rangeSS.End(xlUp).Offset(1, -1).Value = fornitore_cbx.Value
    rangeSS.End(xlUp).Offset(1, -1).Interior.color = RGB(255, 255, 0)

    rangeSS.End(xlUp).Offset(2, -1).Value = corriere_txt.Value
    rangeSS.End(xlUp).Offset(2, -1).Interior.color = RGB(255, 255, 0)

    rangeSS.End(xlUp).Offset(3, -1).Value = merce_txt.Value
    rangeSS.End(xlUp).Offset(3, -1).Interior.color = RGB(255, 255, 0)

End Sub

If it doesn't work try to remove the comment on line rangeSS.End(xlUp).Offset(1, -2).NumberFormat = "dd/mm/yyyy"



来源:https://stackoverflow.com/questions/45854684/excel-vba-convert-cell-value-in-dd-mm-yyyy

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!