VBA日期转化问题 10
现有一表,如下-A列B列2014/3/208:50:292014/2/218:33:22我需要B列只显示年月,这个代码怎么写?一定要用VBA,不能用公式...非常感谢!...
现有一表,如下 -
A列 B列
2014/3/20 8:50:29
2014/2/21 8:33:22
我需要B列只显示年月,这个代码怎么写?
一定要用VBA,不能用公式...
非常感谢! 展开
A列 B列
2014/3/20 8:50:29
2014/2/21 8:33:22
我需要B列只显示年月,这个代码怎么写?
一定要用VBA,不能用公式...
非常感谢! 展开
3个回答
展开全部
按照你的意思,你返回的值应该是一个String型,而不是日期型,把类型修改后可以运行,另外我觉的你的算法有些不太安全,最好使用日期函数进行运算。
Function date1(a As Integer, b As Integer, c As Integer) As String
If b >= 1 And b < 4 Then date1 = CStr(a - 1) + "-" + CStr(9) + "-" + CStr(30)
If b >= 4 And b < 6 Then date1 = CStr(a - 1) + "-" + CStr(12) + "-" + CStr(31)
If b >= 6 And b < 9 Then date1 = CStr(a) + "-" + CStr(3) + "-" + CStr(31)
If b >= 9 And b < 12 Then date1 = CStr(a) + "-" + CStr(6) + "-" + CStr(30)
If b = 12 Then date1 = CStr(a) + "-" + CStr(9) + "-" + CStr(30)
End Function
vba自带的日期函数:
Date 系统当前的日期
DateValue(字符串) 字符串转换为日期
DateSerial(年,月,日) 指定的年月日转换为日期
DateAdd("x",时间间隔,"日期") 某一日期加上一段时间
DateDiff("x","日期","日期") 两日期间相差一段时间
DatePart("x", "日期") 返回日期的部分
Application.Days360("日期开始", "日期结束") 两日期间的天数(按每月30天计)
DateDiff("d", "日期开始", "日期结束") 两日期间的天数(按实际天数计)
x为:
yyyy 年
q 季
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 时
n 分钟
s 秒
Year("日期") 返回日期的年份
Month("日期") 返回日期的月份
Day("日期") 返回日期的某日
Hour("日期") 返回日期的某时
Minute("日期") 返回日期的某分
Second("日期") 返回日期的某秒
Time 系统当前的时间
Timer 午夜到现在经过的秒数
TimeValue(字符串) 字符串转换为时间
TimeSerial(时,分,秒) 指定的时分秒转换为时间
Now 系统当前的日期和时间
Weekday("日期") 返回日期的星期几
WeekdayName(n) 数字转化成星期几(n为1~7)
MonthName(n) 数字转化成月份(n为1~12)
请参考
Function date1(a As Integer, b As Integer, c As Integer) As String
If b >= 1 And b < 4 Then date1 = CStr(a - 1) + "-" + CStr(9) + "-" + CStr(30)
If b >= 4 And b < 6 Then date1 = CStr(a - 1) + "-" + CStr(12) + "-" + CStr(31)
If b >= 6 And b < 9 Then date1 = CStr(a) + "-" + CStr(3) + "-" + CStr(31)
If b >= 9 And b < 12 Then date1 = CStr(a) + "-" + CStr(6) + "-" + CStr(30)
If b = 12 Then date1 = CStr(a) + "-" + CStr(9) + "-" + CStr(30)
End Function
vba自带的日期函数:
Date 系统当前的日期
DateValue(字符串) 字符串转换为日期
DateSerial(年,月,日) 指定的年月日转换为日期
DateAdd("x",时间间隔,"日期") 某一日期加上一段时间
DateDiff("x","日期","日期") 两日期间相差一段时间
DatePart("x", "日期") 返回日期的部分
Application.Days360("日期开始", "日期结束") 两日期间的天数(按每月30天计)
DateDiff("d", "日期开始", "日期结束") 两日期间的天数(按实际天数计)
x为:
yyyy 年
q 季
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 时
n 分钟
s 秒
Year("日期") 返回日期的年份
Month("日期") 返回日期的月份
Day("日期") 返回日期的某日
Hour("日期") 返回日期的某时
Minute("日期") 返回日期的某分
Second("日期") 返回日期的某秒
Time 系统当前的时间
Timer 午夜到现在经过的秒数
TimeValue(字符串) 字符串转换为时间
TimeSerial(时,分,秒) 指定的时分秒转换为时间
Now 系统当前的日期和时间
Weekday("日期") 返回日期的星期几
WeekdayName(n) 数字转化成星期几(n为1~7)
MonthName(n) 数字转化成月份(n为1~12)
请参考
展开全部
日期转化有三个函数:
1、=DAY(A1),转化为日
2、=MONTH(A1),转化为月
3、=YEAR(A1),转化为年
1、=DAY(A1),转化为日
2、=MONTH(A1),转化为月
3、=YEAR(A1),转化为年
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样可以吗?
[b1]=format([a1],"yyyy年mm月")
修改字符串可以实现各种格式
[b1]=format([a1],"yyyy年mm月")
修改字符串可以实现各种格式
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |