求助!关于使用vba进行日期格式转换的请教
为了提高工作效率,我用excel自己写了一个程序可以把每天的透支款按日自动生成明细台账文件,但是在使用vba进行日期转换时遇到了点问题,请各位大大帮忙!我的设想是在窗体中...
为了提高工作效率,我用excel自己写了一个程序可以把每天的透支款按日自动生成明细台账文件,但是在使用vba进行日期转换时遇到了点问题,请各位大大帮忙!
我的设想是在窗体中建立了一个文本输入框,希望输入格式为“YYYYMMDD”的日期后,能自动计算出90天后到期日,并在另一个文本框中实时显示为“YYYYMMDD”的格式。
我是VBA菜鸟,各位大大不要见笑。在此先谢过了!!
已经解决了日期格式的转换问题。
接下来要解决的是如何在文本框中实时显示的问题:
我要实现的是:
我在A文本框中输入20101010,然后回车(跳到下一个文本框),这是在B文本框中实时显示20110107
再次感谢各位大大! 展开
我的设想是在窗体中建立了一个文本输入框,希望输入格式为“YYYYMMDD”的日期后,能自动计算出90天后到期日,并在另一个文本框中实时显示为“YYYYMMDD”的格式。
我是VBA菜鸟,各位大大不要见笑。在此先谢过了!!
已经解决了日期格式的转换问题。
接下来要解决的是如何在文本框中实时显示的问题:
我要实现的是:
我在A文本框中输入20101010,然后回车(跳到下一个文本框),这是在B文本框中实时显示20110107
再次感谢各位大大! 展开
3个回答
展开全部
工具/材料:Microsoft Office Excel2007版,Excel表格。
1、首先双击打开Excel表格。
2、其次在Microsoft Office Excel2007版界面上,选中底部工作表,右键点击“查看代码”。
3、接着在弹出的VBA窗口中,输入日期格式转换的代码“Private Sub dateTra() Dim datetime datetime = "2020/2/13" MsgBox (Format(datetime, "YYYY-MM-DD")) End Sub
”。
4、其次在弹出的VBA窗口中,点击工具栏里的三角形图标。
5、最后在Microsoft Office Excel2007版界面上,弹出提示框,成功显示日期格式转换。
展开全部
虽然你已解决格式问题,不过我还是想说一下,用FORMAT最简单,语法:
文本框=Format(日期变量,"YYYYMMDD")或文本框=Format(日期变量,"YYYY-MM-DD")
不过你不能再在文本框的属性中设置格式了,如果你要更变态的日期格式就用字符串变最来保存,然后,自己再写一个返回正常日期的函数,显示时转换为了字符串即可如:
文本框=Cstr(Format(日期变量,"YYYYMMDD"))
接下来要实现的问题很简单
在窗体中,右击空白处,选择“Tab键次序...”调整你所需要的次序即可,全用鼠标操作,选择一个或多个控件,然后就可以向下或向上移动他们了,重新排序的控件次序即是你所需的Tab键顺序,或Enter键后的次序,(声明:在文本框输入完后按Enter键,若TAB键顺序的下一个控件是按钮,会将焦点移动按钮上,但再按Enter键,焦点不会转移,因为会触发Click事件,只能用Tab键)
2、在A文本框的AfterUpdate事件中写入
B文本框=Cstr(CDate(Trim(Me.A文本框))- 90)
文本框=Format(日期变量,"YYYYMMDD")或文本框=Format(日期变量,"YYYY-MM-DD")
不过你不能再在文本框的属性中设置格式了,如果你要更变态的日期格式就用字符串变最来保存,然后,自己再写一个返回正常日期的函数,显示时转换为了字符串即可如:
文本框=Cstr(Format(日期变量,"YYYYMMDD"))
接下来要实现的问题很简单
在窗体中,右击空白处,选择“Tab键次序...”调整你所需要的次序即可,全用鼠标操作,选择一个或多个控件,然后就可以向下或向上移动他们了,重新排序的控件次序即是你所需的Tab键顺序,或Enter键后的次序,(声明:在文本框输入完后按Enter键,若TAB键顺序的下一个控件是按钮,会将焦点移动按钮上,但再按Enter键,焦点不会转移,因为会触发Click事件,只能用Tab键)
2、在A文本框的AfterUpdate事件中写入
B文本框=Cstr(CDate(Trim(Me.A文本框))- 90)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果文本框的输入格式是“YYYYMMDD”而不是“YYYY-MM-DD”,例如:20090408,可以用下面方法处理:
Dim A As String, B As String, C As String, M As String, R As Date, R1 As Date, X As Integer
A = Left(Text1.Text, 4)
B = Right(Left(Text1.Text, 6), 2)
C = Right(Text1.Text, 2)
M = A & "-" & B & "-" & C
R1 = CDate(M)
X = DateDiff("D", R1, Date)
If X > 90 And Weekday(Date) = 1 Then
Text2.Text = Text1.Text
End If
Dim A As String, B As String, C As String, M As String, R As Date, R1 As Date, X As Integer
A = Left(Text1.Text, 4)
B = Right(Left(Text1.Text, 6), 2)
C = Right(Text1.Text, 2)
M = A & "-" & B & "-" & C
R1 = CDate(M)
X = DateDiff("D", R1, Date)
If X > 90 And Weekday(Date) = 1 Then
Text2.Text = Text1.Text
End If
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询