excel - 重新组织单个单元格的内容
问题描述
我对某些以 excel 无法识别的格式导入的日期有疑问,因此我正在寻找通过 vba 进行的简单修复。2018 年 12 月 31 日的格式。这似乎不是一种不寻常的格式,所以我尝试将文本转换为数字格式,但没有成功。我发现可行的唯一方法是将值切换为像 2018/12/31 这样的格式。
基本上我想重新组织单元格的内容,但我不确定如何去做(我想也许 Trim 函数可能是使用的那个):
Dim rngCell As Range
Dim Lastrow As Integer
With Workbooks("Untitled Analysis.xlsx").Sheets("Untitled Analysis")
Lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
Set rngTemp = .Range("J2:J" & Lastrow)
For Each rngCell In rngTemp
TRIM(MID(J176,SEARCH("/",J176)+1,250))&"/"&LEFT(J176,SEARCH("/",J176)-1)
但是,这将返回 12/2018/31
解决方案
如果您的数据总是用“/”分隔,那么实际使用 split 函数可能更方便。这只会替换单元格中的所有值。完全公开,我还没有测试过,这也将值更改为字符串而不是实际的日期格式
Dim rngCell As Range
Dim Lastrow As Integer
With Workbooks("Untitled Analysis.xlsx").Sheets("Untitled Analysis")
Lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
Set rngTemp = .Range("J2:J" & Lastrow)
For Each rngCell In rngTemp
rngCell.Value = Split(rngCell.Value,"/")(2) & "/" & Split(rngCell.Value,"/")(1) & "/" &Split(rngCell.Value,"/")(0)
next rngCell
end With
编辑这应该将其转换为格式正确的日期值
Dim rngCell As Range
Dim Lastrow As Integer
With Workbooks("Untitled Analysis.xlsx").Sheets("Untitled Analysis")
Lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
Set rngTemp = .Range("J2:J" & Lastrow)
For Each rngCell In rngTemp
rngCell.Value = DateSerial(Split(rngCell.Value,"/")(2),Split(rngCell.Value,"/")(1),Split(rngCell.Value,"/")(0))
rngCell.NumberFormat = "yyyy-mm-dd;@"
next rngCell
end With
推荐阅读
- javascript - 计算日历周视图中的预订高度
- r - 使用 bash (linux) 选择制表符分隔文件的特定行
- java - ArrayList 返回类型方法是返回 ArrayList 变量的内存地址还是它的副本?
- r - R从本地文件计算平均值和中位数
- java - System.out.println() 在某些行上缺少制表符 ("\t")
- html - 如何使我的登录页面响应,以便登录按钮不会消失?
- javascript - 为什么 Internet Explorer 11 中没有通过 Ajax 调用类函数?
- sql - 将 ROW_NUMBER() 与聚合函数一起使用
- java - 如何将 org.threeten.bp.OffsetDateTime 转换为 java.time.OffsetDateTime?
- c# - 如何使 ASP.NET Core 中的身份验证 cookie 无效?