繁体   English   中英

使用日期输入宏时下标超出范围

[英]Subscript out of range when using date input macro

虽然在这里是菜鸟/新手,但过去已经成功地修改了一些代码。 运行一个宏,该宏会弹出一个UI框以输入日期和客户预订字段,该文件的先前版本可以正常工作,但是由于将宏等移植到2016年的excel文件中,我现在在以前的工作副本上都遇到此错误。 经过测试,以前的文件在我自己以外的所有其他登录名/计算机上都能正常工作。

收到错误9,下标超出范围,指向以下代码,该代码读取隐藏工作表上生成的日历;

代码是;

'~~> Ok Button
Private Sub CommandButton53_Click()
   BookedInDate = Me.TextBox1.Text

   Dim Day As String
   Dim Month As String
   Dim Year As String

   Day = Split(Me.TextBox1.Text, "/")(0)
    Month = Split(Me.TextBox1.Text, "/")(1)
     Year = Split(Me.TextBox1.Text, "/")(2)

   BookedDate = DateSerial(Year, Month, Day)

'   ActiveSheet.Range("BE" & cell.row).Value = Me.txtTimeIn.Text

   varTimeIn = Replace(Me.txtTimeIn.Text, ".", ":")



   'BookedDate = dateserial(me.TextBox1.
   'WSLoc2.Close


 '  WSLoc2.Delete


   Unload Me
   End Sub

竭尽全力试图弄清楚为什么我现在在以前的功能性工作簿上收到此错误,请多多指教。 调试工具将我指向

Month = Split(Me.TextBox1.Text, "/")(1)

拆分函数引用的代码:

Private Sub UserForm_Activate()
 Dim dat As Date
    dat = DateAdd("m", 1, DateSerial(Val(Format(CommandButton45.Caption, "YYYY")), Val(Format(CommandButton45.Caption, "MM")), 1))
'    GenerateCal Format(Now(), "dd/mm/yyyy")
    CommandButton45.Caption = Format(Now(), "mmm - yyyy")
    Me.TextBox1.Text = Format(Now(), "d/mm/yyyy")

格式功能(Visual Basic for Applications)的文档指出:

用户定义的日期/时间格式(格式功能)下表列出了可用于创建用户定义的日期/时间格式的字符:

(/) 日期分隔符 在某些语言环境中,其他字符可以用来表示日期分隔符。 当日期值格式化时,日期分隔符分隔日,月和年。 格式化输出中用作日期分隔符的实际字符由系统设置确定。

这意味着日期的格式字符串中的/取决于语言环境。 例:

Dim s As String
s = Format(Now(), "d/mm/yyyy")
MsgBox s

在我的德语Excel中,今天的s = 18.04.2018 ,因为在我的德语语言环境中,点是. 是日期分隔符。

如果您始终希望将斜杠用作日期字符串中日期月份和年份之间的分隔符,请使用以下命令:

Dim s As String
s = Format(Now(), "d\/mm\/yyyy")
MsgBox s

那里的反斜杠掩盖了没有特殊含义的斜杠,如“日期分隔符”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM