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").Select
    Selection.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中检索汇率表

Excel VBA将一列的字符串与第二列的字符串进行比较

如何利用EXCEL VBA将一列数据中不重复的数据读取到数组中?

如何将一列时间戳转换为日期时间? [复制]

oracle数据库中如何将一列的内容转换成多行

如何将一列中的两列合并为日期与熊猫?