Excel vba 转换 dd/mm/yyyy 中的单元格值
Excel vba convert cell value in dd/mm/yyyy
我在 excel 中使用 vba 时遇到日期值问题。
我创建了一个插入日期和其他数据的用户表单。当我按下按钮时,它会将日期插入到 sheet 中的单元格中。我的问题是,当它在文本框中复制日期时,它会将其复制到 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)
在另一个 sheet 中,我创建了一个类似的用户表单,它根据需要复制日期。
你能帮帮我吗?
谢谢
先将您的值赋给 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
如果不起作用,请尝试删除第 rangeSS.End(xlUp).Offset(1, -2).NumberFormat = "dd/mm/yyyy"
行的评论
我在 excel 中使用 vba 时遇到日期值问题。 我创建了一个插入日期和其他数据的用户表单。当我按下按钮时,它会将日期插入到 sheet 中的单元格中。我的问题是,当它在文本框中复制日期时,它会将其复制到 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)
在另一个 sheet 中,我创建了一个类似的用户表单,它根据需要复制日期。 你能帮帮我吗?
谢谢
先将您的值赋给 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
如果不起作用,请尝试删除第 rangeSS.End(xlUp).Offset(1, -2).NumberFormat = "dd/mm/yyyy"