Excel vba如何设定用指定数字替代日期

一般来说我们的通用的日期格式如2019-10-11,但某些情况下,客户需要做格式设定,对于年取最后一个字符,对于2位数的月份和日期,就使用字母按顺序代替。2019-9-8... 一般来说我们的通用的日期格式如2019-10-11,但某些情况下,客户需要做格式设定,对于年取最后一个字符,对于2位数的月份和日期,就使用字母按顺序代替。2019-9-8变成了9-9-8,而2019-10-11就变成了9-A-B,2020-12-13就变成了0-C-D。请问如何用vba代码实现这个替换。 展开
 我来答
YQ杨
2019-09-23 · TA获得超过4803个赞
知道大有可为答主
回答量:4085
采纳率:80%
帮助的人:180万
展开全部

Excel vba设定用指定数字替代日期,其实就是提取后判断处理再组合的一个过程。
VBA代码如下:
Sub ZDate()
EndRow = Range("A65536").End(xlUp).Row
For i = 1 To EndRow
Str1 = Range("A" & i)
Y = Mid(Str1, 4, 1)
M = Month(Str1)
D = Day(Str1)
If M >= 10 Then M = Chr(M + 55)
If D >= 10 Then D = Chr(D + 55)
Str2 = Y & "-" & M & "-" & D
Range("B" & i) .NumberFormat = "@"
Range("B" & i) = Str2
Next
End Sub



至于具体所需要填写的地方就自行修改即可。
思路:
1、提取年、月、日的具体数据;
2、判断月、日的大小;
3、利用Chr函数转换成字母;
4、组合新的数据填入单元格中。

追问
好似年的逻辑有误,非常感谢!
追答
年不存在逻辑啊!就直接提取第四位数就可以了啊!
朋振荣0fK
2019-09-23
知道答主
回答量:3
采纳率:0%
帮助的人:2031
展开全部
最简单的方法是录制一个宏,再进入宏编辑器分析一下自然明白。
Range("E4").Select
Selection.NumberFormatLocal = "yyyy-m-d"
E4是指定单元格的名称。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式