如何根据单元格在Excel中的值更改其类型?
我有一个excel 2013文件,包括以下数据:如何根据单元格在Excel中的值更改其类型?,excel,vba,excel-formula,excel-2013,Excel,Vba,Excel Formula,Excel 2013,我有一个excel 2013文件,包括以下数据: User LastLogin A 03/15/2020 B user's machine not found C 03/09/2020 D 03/25/2020 E user's machine not found LastLogin列的类型为“Text” 我需要定义一个条件或开发一个VB脚本来根据其值更改单元格的类型。如果是日期,则格式应为“日期”,否则应为“文本” 我在网上查看了一些示例,但只能找到
User LastLogin
A 03/15/2020
B user's machine not found
C 03/09/2020
D 03/25/2020
E user's machine not found
LastLogin
列的类型为“Text”
我需要定义一个条件或开发一个VB脚本来根据其值更改单元格的类型。如果是日期,则格式应为“日期”,否则应为“文本”
我在网上查看了一些示例,但只能找到一些更改单元格UI的示例(突出显示等)。如何根据单元格的值更改单元格的类型
如果您有任何帮助,我们将不胜感激。在Excel中,通常会在输入值后立即识别并设置单元格的格式,除非将单元格的格式指定为文本。因此,将文本格式转换为单元格格式中的另一种格式后,再次输入该值将自动设置该格式。设置日期格式后,如果文本值出现,则不会以日期格式显示
Sub test()
Dim Ws As Worksheet
Dim vDB, rngDB As Range
Set Ws = ActiveSheet
Set rngDB = Ws.Range("a1").CurrentRegion
vDB = rngDB
With Ws
.Columns(2).NumberFormat = "mm/dd/yyyy"
End With
rngDB = vDB
End Sub
之前
之后
在Excel中,通常会在输入值后立即识别和设置单元格的格式,除非将单元格的格式指定为文本。因此,将文本格式转换为单元格格式中的另一种格式后,再次输入该值将自动设置该格式。设置日期格式后,如果文本值出现,则不会以日期格式显示
Sub test()
Dim Ws As Worksheet
Dim vDB, rngDB As Range
Set Ws = ActiveSheet
Set rngDB = Ws.Range("a1").CurrentRegion
vDB = rngDB
With Ws
.Columns(2).NumberFormat = "mm/dd/yyyy"
End With
rngDB = vDB
End Sub
之前
之后
只需将整个列格式化为日期。由于日期是以数字形式存储的,也许您可以使用它来检查它是文本还是数字,并将其作为一个函数的一部分来完成您要做的任何事情。(但如上所述,没有理由不能将文本放在格式为date的单元格中。单元格格式会发生什么变化?)只需将整个列的格式设置为date即可。由于日期存储为数字,也许您可以使用它来检查它是文本还是数字,并将其作为完成您尝试执行的任何操作的一部分。(但如上所述,没有理由不能将文本放入格式为日期的单元格中。您希望单元格格式发生什么变化?)