CDate 可以在没有 for 循环的 Range 上使用吗?

2024-02-06

我有一个列,其格式如下:

Range("A:A").NumberFormat = "dd.mm.yyyy" 

现在,我正在寻找一个有效的版本:

    For k = 1 To Range("A1").End(xlDown).Row
    ' from first to last row
    Cells(k, 1).Value = CDate(Cells(k, 1).Value)
    Next k

这需要永远;(有人知道有效的解决方案吗?谢谢!!!

为什么我需要这个? 运行时:

      With ws.Sort
        .SortFields.Add Key:=Range("A1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange Range("A1", Range("A1").End(xlDown))
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

我得到了奇怪的排序,例如:

2021年1月1日
2021年2月1日
2021年3月1日
2021年1月2日


CDate 可以在没有 for 循环的 Range 上使用吗?

是的possible无需循环即可转换范围,但没有CDATEExcel 中的公式,因此您必须使用公式Date() with RIGHT(), MID() and LEFT()

例如

=DATE(RIGHT(A1,4),MID(A1,4,2),LEFT(A1,2))

现在回答你的问题

Try this

Option Explicit

Sub Sample()
    Dim rng As Range
    Dim sAddr As String
    Dim ws As Worksheet
    Dim lRow As Long
    
    '~~> Change Sheet as applicable
    Set ws = Sheet1
    
    With ws
        lRow = .Range("A" & .Rows.Count).End(xlUp).Row
        
        Set rng = .Range("A1:A" & lRow)
        sAddr = rng.Address

        rng = Evaluate("index(DATE(RIGHT(" & sAddr & _
                       ",4),MID(" & sAddr & ",4,2),LEFT(" & _
                       sAddr & ",2)),)")
        
        '~~> Change to whatever format you want
        rng.NumberFormat = "dd/mm/yyyy"
    End With
End Sub

解释参见将整个范围转换为大写而不循环遍历所有单元格 https://stackoverflow.com/questions/19985895/convert-an-entire-range-to-uppercase-without-looping-through-all-the-cells

行动中

话虽如此,我更喜欢@Rory上面提到的。使用Data - Text to Columns.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CDate 可以在没有 for 循环的 Range 上使用吗? 的相关文章

随机推荐

  • 在 xamarin 表单上预加载页面

    我正在寻找让我的 Xamarin Forms 应用程序更快的技巧 我遇到了这个article https newbedev com slow startup of xamarin app 好吧 我已经尝试了一些选项 但我发现很难实现最后一个
  • 在 Node.js 中的 mongoose 用户上使用 _.omit

    我有一个像这样构建的猫鼬用户模式 var UserSchema new Schema username type String required true index unique true password type String req
  • 并行化 std::nth_element 和 std::partition

    我正在移植使用的 C 代码std nth element and std partition到 OpenCL nth element http www cplusplus com reference algorithm nth elemen
  • .NET 如何以及何时实际编译代码?

    假设您使用 C VB 或任何 NET 编写应用程序 当你点击构建时 它真的会编译你的代码吗 我是这么认为的 直到我开始在我的一些程序集上使用 redgates 反射器并逐字查看我的代码 我本来期望展开循环并进行大量优化 但什么也没有 那么编
  • 无法在 iPhone 应用程序中通过 Oauth 2.0 获取 google+ 的访问令牌

    我正在尝试在 iPhone 应用程序中使用 Oauth 2 0 访问 Google API 为此 我使用 OauthConsumer 库 我获得了未经授权的 request token 和授权码 但无法使用授权码将该 request tok
  • 我怎样才能取消 Future.delayed 函数调用

    我怎样才能取消 Future delayed 我正在使用 Future delayed 来执行某些任务 但是如果我想取消这个延迟的任务 那么他们的任何方法或任何其他要使用的东西也是如此 Future delayed Duration sec
  • 将密钥和 SSL 证书导入 java 密钥库

    我有 pem 格式的证书文件和私钥文件 是否可以使用 Java 代码和 JDK 附带的默认库 而不是第三方库 将这些文件加载 到 Java 密钥库中 当我尝试谷歌搜索时 我只能找到 der 格式的文件以使用 java 代码导入到 java
  • Python 异常传播

    我正在构建一个工具 当异常向上传播时 有关异常上下文的新数据将添加到异常中 问题是 当异常到达顶层时 所有额外的上下文数据都在那里 但只显示最新的堆栈跟踪 有没有一种简单的方法可以让异常显示抛出异常的原始堆栈跟踪而不是最后一个堆栈跟踪 或者
  • 无法在导入请求时从“集合”导入名称“映射”[重复]

    这个问题在这里已经有答案了 Python版本 Python 3 10 4 画中画版本 pip 22 0 4 所以我试图用套接字制作一个小项目 我添加了一个上传文件的功能 但是每当我导入请求时 它都会抛出此错误 下面是我运行的代码 Trace
  • USB 控制传输能否保证交付?

    USB 2 0 指定 http www usb org developers docs usb20 docs 4 种传输类型 第 5 4 节传输类型 控制转移 同步传输 中断传输 批量转账 第 5 8 节规定批量转账提供 在带宽可用的基础上
  • 如何将数据从一种表单发送到另一个类的函数

    我知道如何将数据从一种表单传递到另一种表单 但如何将数据从一种表单传递到类 这是我想要传递的数据form1上课问题 string GrpID somevalue string DurationID somevalue 我搜索过但没有得到确切
  • Android java 设置图像资源

    我对此有很大的了解 if num1 getText equals 0 num1 setText 1 ImageView hpdown1 ImageView findViewById R id hair hpdown1 setImageRes
  • 通过代码使用 NHibernate 映射:当 IDENTITY_INSERT 设置为 OFF 时,无法在表“DietUser”中插入标识列的显式值

    我花了一段时间才找到这个问题的答案 所以我想分享这份爱 当通过 SQL Server 代码使用 NHibernate 的新映射时 我无法保存实体 保存实体时 会引发 System Data SqlClient SqlException 并显
  • 我们应该在 C++ 中使用 exit 吗?

    根据C 参考 exit正常终止进程 执行常规清理 用于终止程序 正常的程序终止执行以下操作 以相同的顺序 与当前线程关联并具有线程存储的对象 持续时间被破坏 仅限 C 11 具有静态存储的对象 持续时间被破坏 C 并且使用 atexit 注
  • 如何更改 pine 脚本中函数的全局变量?

    我正在尝试编写一个脚本来获得 9 个级别的江恩平方 我已经用其他语言完成了它 但无法理解此处的 pine 脚本 它说无法修改函数中的全局变量 有什么解决方案可以获取这里的值是我的脚本 version 4 study title Volume
  • Xcode 5.1 破坏了一些测试

    自从更新到 Xcode 5 1 以来 我在尝试运行单元测试 XCTestSuite 时遇到了错误 当我运行单独的测试方法时 出现错误Error while reading test scope bundle在控制台上没有结果 当我运行测试文
  • 如何在整个组织内共享数据

    组织在多个部门和应用程序之间共享关键数据有哪些好方法 举个例子 假设有一个主要应用程序和数据库来管理客户数据 组织中还有十个其他应用程序和数据库读取该数据并将其与自己的数据关联起来 目前 这种数据共享是通过数据库 DB 链接 物化视图 触发
  • 如何以最有效的方式将图像转换为字符串?

    我想将图像文件转换为字符串 以下作品 MemoryStream ms new MemoryStream Image1 Save ms ImageFormat Jpeg byte picture ms ToArray string formm
  • 如果索引列不同,则对一列的值求和?

    当索引列不同时 如何对一列中的值求和 最初 我有这样的 SQL 查询 SELECT COALESCE SUM ISNULL cast Quantity as int 0 0 AS QuantitySum FROM Records 也尝试这样
  • CDate 可以在没有 for 循环的 Range 上使用吗?

    我有一个列 其格式如下 Range A A NumberFormat dd mm yyyy 现在 我正在寻找一个有效的版本 For k 1 To Range A1 End xlDown Row from first to last row