2013-02-19 215 views
3

当我试图执行下面的代码,我得到了错误消息“运行时错误‘424’所需的对象”,Excel Vba运行时错误?

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

其中X1是压延对象。

如果我会用下面的代码为

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

我的代码将存储的日期2013年2月11日,而不是2013年11月2日,这里的问题是它重新安排它一个月,日期。

希望我会为此提供解决方案。

在此先感谢

+1

我想你的第一个错误,你在未定义的范围内使用x1。除非x1是全局的(可能不是),否则您需要在子的声明中传递对它的引用。 – Joe 2013-02-19 07:22:28

回答

4

您在第一时间得到一个错误,因为一系列的.Text属性是读 - 仅用于从获取当前格式化值的单元格/范围。

我想使用的格式功能,而且设置你把它变成是安全的单元格的数字格式:

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

编辑: 继你对此有何评论,我会建议尝试格式化传入日期与交换的日期和月份,然后应用NumberFormat像这样:

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

+ 1为实际解释为什么错误:) – 2013-02-19 07:41:19

+0

感谢您的解释,但这是行不通的在我的情况下... – 2013-02-19 08:33:20

+0

@Siddharth有时帮助嘿;)Rama试试编辑。 – CuberChase 2013-02-19 08:57:02

0

您可以使用Format函数:

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

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