Excel vba在dd/mm/yyyy中转换单元格值

Excel vba在dd/mm/yyyy中转换单元格值,excel,textbox,date-format,vba,Excel,Textbox,Date Format,Vba,我在使用vba的excel中遇到日期值问题。 我创建了一个用户表单,其中插入了日期和其他数据。当我按下按钮时,它会将日期插入到工作表的单元格中。我的问题是,当它在文本框中复制日期时,它会在mm/dd/yyyy而不是dd/mm/yyyy中复制它 代码如下: Private Sub ins_stampa_btn_Click() ' FUNZIONALITA' EVENTO BOTTONE "INSERISCI IN STAMPA" DI INSERIMENTO PER LA STAMPA DELL

我在使用vba的excel中遇到日期值问题。 我创建了一个用户表单,其中插入了日期和其他数据。当我按下按钮时,它会将日期插入到工作表的单元格中。我的问题是,当它在文本框中复制日期时,它会在mm/dd/yyyy而不是dd/mm/yyyy中复制它

代码如下:

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)
在另一张表单中,我制作了一个类似的用户表单,它根据我的需要复制日期。 你能帮我吗


谢谢

在将
日期
变量存储在工作表中之前,请先将您的值赋给该变量

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

在将变量存储在工作表中之前,先将值指定给
日期
变量

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

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
如果不起作用,请尝试删除第
行ranges.End(xlUp).Offset(1,-2).NumberFormat=“dd/mm/yyyy”
上的注释,尝试以下操作:

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

如果不起作用,请尝试删除第
行ranges.End(xlUp).Offset(1,-2).NumberFormat=“dd/mm/yyyy”

上的注释,然后像这样尝试。。。data\u arr\u txt.Value=Format(CLng(data\u arr\u txt.Value),“dd/mm/yyyy”)检查日期值是否为日期后,尝试将其保存在变量中,然后尝试转换。在“MsgBox(data\u arr\u txt.Value)”行中,消息框中显示了什么?在MsgBox中,它以dd/mm/yyyyyy格式返回正确的日期您的excel语言是什么?意大利语还是英语?我的Excel是希腊语使用Clng()并尝试如下。。。data\u arr\u txt.Value=Format(CLng(data\u arr\u txt.Value),“dd/mm/yyyy”)检查日期值是否为日期后,尝试将其保存在变量中,然后尝试转换。在“MsgBox(data\u arr\u txt.Value)”行中,消息框中显示了什么?在MsgBox中,它以dd/mm/yyyyyy格式返回正确的日期您的excel语言是什么?意大利语还是英语?我的Excel是希腊语的,很有效!我还没有考虑过这个问题。非常感谢,当您想从工作表中获取日期并将其存储在某个vba变量中时,也应该这样做。始终使此变量
日期
。它可以工作!我还没有考虑过这个问题。非常感谢,当您想从工作表中获取日期并将其存储在某个vba变量中时,也应该这样做。始终将此变量设置为日期。