VBA 如何将一列字符转成日期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA 如何将一列字符转成日期相关的知识,希望对你有一定的参考价值。
例如我现在的sheet(5)的A列:
20140929
20140928
20140927
我想处理成
2014/09/29
2014/09/28
2014/09/27
用VBA如何操作呢?实际数据有很多行,这个只是简单的举个列子,TKS
VBA 数据类型相互转换
CBool(expression)
CByte(expression)
CCur(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(expression)
CSng(expression)
CStr(expression)
CVar(expression)
CStr(expression)
实例
Sub test()
Dim a As String
Dim da As Date
a = "65742"
da = CDate(a)
MsgBox da
End Sub
效果如图
参考技术A A1=对应单元格8位数字符转为日期型数据,=DateSeria(LEFT(A1,4),MID(A1,5,2), RIGHT(A1,2))
只是单纯加个“/” =LEFT(A1,4) & "/" & MID(A1,5,2) & "/" & RIGHT(A1,2)
在套个循环就行
直接用EXCEL公式 =Date(LEFT(A1,4),MID(A1,5,2), RIGHT(A1,2))
拉一下更快 参考技术B
分列即可,代码如下:
Range("A:A").SelectSelection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 5), TrailingMinusNumbers:=True追问
我的代码,加上你的部分,就提示Paste方法错误了,很无奈,方便907322041帮忙看下不?
追答就是分列,其实我也是录制的,很多时候我们不需要看懂。
本回答被提问者采纳使用vba将一列日期循环到url行中以进行Web查询并从xe.com/currencytables中检索汇率表
我有一列日期(在Excel电子表格中),并希望将这些日期插入网络查询的url行中,以生成一个汇率表,我希望将其放入电子表格中。例如:
A栏2019-12-092019-12-082019-12-07
对于A列中的每个日期,我想将它们插入网址行:以下是从Web使用--Get Data录制的VBA宏。然后,我将https://www.xe.com/currencytables/?from=USD&date=2019-12-10复制并粘贴到url(弹出窗口)中,单击OK,然后选择表0生成日期为2019-12-10的汇率表。我想自动执行此过程,并使用A列中的日期。我没有任何有关功率查询的经验。提前谢谢你的帮助。
Sub Macro2()
'
' Macro2 Macro
'
'
ActiveWorkbook.Queries.Add Name:="Table 0 (6)", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Web.Page(Web.Contents(""https://www.xe.com/currencytables/?from=USD&date=2019-12-08""))," & Chr(13) & "" & Chr(10) & " Data0 = Source0[Data]," & Chr(13) & "" & Chr(10) & " #""Changed Type"" = Table.TransformColumnTypes(Data0,""Currency code ??"", type text, ""Currency name ??"", type text, ""Units per USD"", type number, ""USD per Unit"", type number)" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Changed Type"""
ActiveWorkbook.Worksheets.Add
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Table 0 (6)"";Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [Table 0 (6)]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Table_0__6"
.Refresh BackgroundQuery:=False
End With
End Sub
为了进行测试,我更改了网址:
以上是关于VBA 如何将一列字符转成日期的主要内容,如果未能解决你的问题,请参考以下文章
使用vba将一列日期循环到url行中以进行Web查询并从xe.com/currencytables中检索汇率表