2013-02-19 217 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")