我需要将单元格日期从常规格式 (mm/dd/yy) 更改为文本格式,以便上传到 Peoplesoft。但是我必须保留mm/dd/yy
。当我将单元格从常规格式更改为文本格式时,它会将日期更改为序列号日期,例如41982
等。我不想要序列号日期。它必须保留带有mm/dd/yy
或mm/dd/yyyy
等的文本格式单元格。
答案1
选择包含要转换为格式化文本的日期的单元格并运行这个小宏:
Sub TextDate()
Dim r As Range, st As String
For Each r In Selection
If r.Value <> "" Then
r.NumberFormat = "mm/dd/yyyy"
st = r.Text
r.Clear
r.NumberFormat = "@"
r.Value = st
End If
Next r
End Sub
宏的安装和使用非常容易:
- ALT-F11 打开 VBE 窗口
- ALT-I ALT-M 打开新模块
- 粘贴内容并关闭 VBE 窗口
如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件另存为.xlsm而不是.xlsx
要删除宏:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 VBE 窗口
要使用 Excel 中的宏:
- ALT-F8
- 选择宏
- 触摸运行
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
必须启用宏才能使其工作!
答案2
当我将单元格从常规格式更改为文本格式时...
正确的选择是该对话框中的“日期”格式。
日期以数字形式存储,即从基准日期开始计算天数 - 即每增加一个“1”就增加 24 小时。基准日期因 Excel 中的相关设置而异。
如果您需要单元格包含格式化文本;
- 然后确保你看到的日期格式符合你的要求
- 选择单元格(按住 CTRL 可选择不相邻的单元格)
- 从菜单或功能区中选择“复制”
- 从菜单或功能区中选择“选择性粘贴”
- 从对话框中选择“粘贴值”,然后单击“确定”
答案3
如果目的是从输入中获取日期列并在 SQL 中使用它来加载到 PS 表中,我会将列格式设置为您需要的日期设置。一旦您清楚 PS 如何需要日期(这是特定于 DB 的并且需要反复试验),您就可以使用 TO_DATE 创建 SQL 格式调用。例如,如果 2018 年 11 月 26 日的日期需要为 MM/DD/YYYY,则命令将如下所示 TO_DATE('11/26/2018','MM/DD/YYYY')。第一个变量捕获要输入的数据,第二个变量定义格式。另一种使用方法是从日期中删除破折号并使用格式变量来定义日期布局:TO_DATE('11262018','MMDDYYYY')。大多数提供原始数据和格式的过程都可以将其格式化为您的数据库日期标准,而不是让您猜测。