Excel VBA运行时错误?

当我试图执行下面的代码时,我得到了错误消息“运行时错误”424“对象需要”,

Sub test() Range("Q" & i).Text = x1.Text End Sub 

其中x1是日历对象。

如果我将使用下面的代码

 Range("Q" & i) = x1.Text 

我的代码将存储date为02-11-2013而不是11-02-2013,这里的问题是重新安排它的月份和date。

希望我会有这个解决scheme。

提前致谢

由于范围的.Text属性是只读的,因此会在第一个实例中收到错误,用于单元格/范围中获取当前格式化的值。

我会使用格式化function,但也设置您要放入的单元格的数字格式是安全的:

 Range("Q" & i).Value = Format(x1.Text, "dd-mm-yyyy") Range("Q" & i).NumberFormat = "dd-mm-yyyy;@" 

编辑:除了你的评论,我会build议尝试格式化date和交换的date,然后应用NumberFormat像这样:

 Range("Q" & i).Value = Format(x1.Text, "mm-dd-yyyy") Range("Q" & i).NumberFormat = "dd-mm-yyyy;@" 

您可以使用格式function:

  Range("Q" & i).Value = Format(x1.Text, "dd-mm-yyyy") 

请使用Range("Q" & i) = Format(x1.Text,"dd-MM-yyyy")