首页 文章

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

提问于
浏览
0

使用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)

在另一张表中,我制作了类似的用户表单,并根据需要复制日期 . 你可以帮帮我吗?

谢谢

2 回答

  • 0

    在将值存储在工作表中之前,将其值分配给 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
    
  • 2

    试试这个:

    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
    

    如果它不起作用尝试删除行 rangeSS.End(xlUp).Offset(1, -2).NumberFormat = "dd/mm/yyyy" 上的注释

相关问题