新的VBA编码和第一次,我问的东西,所以给予一些松弛,如果你看到一些假代码。
我有一个Excel表格,其中A列中的日期格式为mm/dd/year。我想将其更改为dd/mm/year,为了在VBA中进行一些练习,我试图通过代码来完成(我已经尝试了格式单元格选项,但没有工作)。首先,我试图使用以下代码以所需的格式重写H列中的日期列:
Public Sub ChangingDateFormat()
Dim dest As Range
Dim dindx As Integer
Dim cll As Range
Dim x As String
Dim y As String
Dim z As String
'Establish where output goes
Set dest = Range("H2")
'Set counter for output rows
dindx = 0
'Establish your North Star reference
Set cll = Range("A2")
'Loop as long as anchor cell down isn't blanc
While cll.Offset(dindx, 0) <> ""
'Test if not empty; if not empty populate destination with data
If cll.Offset(dindx, 0) <> "" Then
x = Left(cll.Offset(dindx, 0), 2)
y = Mid(cll.Offset(dindx, 0), 4, 3)
z = Right(cll.Offset(dindx, 0), 5)
'True case: Output date
dest.Offset(dindx, 0) = y & x & z
'Increment row counter
dindx = dindx + 1
End If
'End While statement
Wend
End Sub
但是,当宏运行时,某些单元格具有所需的格式,而其他单元格则没有。
Excel工作表看起来像这样:
My WorkSheet
你知道问题出在哪里吗?如果你能给我指出方向,我将不胜感激。
谢谢
2条答案
按热度按时间bfhwhh0e1#
尝试使用
Format
函数(这只是示例)并尝试在代码中实现tcomlyy62#
Excel表格(
ListObject
)A
列中的值是真实的日期,而不是文本。Header
)。如果成功,它将对找到标题的列应用数字格式。当标题(标题)永远不会更改,但列在表中的位置可能会更改时,将使用此方法。密码