2013-12-16 210 views
7

我一直在使用SQL和Excel宏,但我不知道如何將文本添加到單元格。使用VBA將文本添加到Excel中的單元格

我希望將文字"01/01/13 00:00"添加到單元格A1。我不能只把它寫在單元格中,因爲宏會先清除表單的內容並在之後添加信息。

如何在VBA中做到這一點?

+0

找到清除內容的行並對其進行修改所需的文本。或使用'Range(「A1」)。NumberFormat =「@」'然後'範圍(「A1」)=「01/01/13 00:00」' – 2013-12-16 13:47:26

+0

@明白這比兩個答案都好;其中之一是我的。 – Bathsheba

+0

@Bathsheba +1個人 – 2013-12-16 13:51:00

回答

14

Range("$A$1").Value = "'01/01/13 00:00"會做到這一點。

請注意單引號;這將失敗自動轉換爲數字類型。但是,你真的想要什麼?另一種方法是將單元格格式化爲日期時間值。然後從字符串中刪除單引號。

+2

+1對於偉大的思想一致 - 但是當我添加對'[A1]'符號的解釋時,你會快一點。 – Floris

+0

文字很好,但謝謝你,我會盡量防止以防萬一。 – Phil

+0

這不適用於我..它適用於某些單元格,我添加一些數字,但不適用於向某些添加文本..它是一個受保護的工作表,但我可以手動輸入文本中的單元格..可能是什麼問題宏失敗?我只使用Range(「$ D $ 2」)。Value =「'test」 –

9

你可以做

[A1].Value = "'O1/01/13 00:00" 

,如果你真的是將其添加爲文本(注意撇號作爲第一個字符)。

[A1].Value是VBA速記Range("A1").Value

如果你想輸入一個日期,你可以做,而不是(與感謝@SiddharthRout編輯的順序排列):

[A1].NumberFormat = "mm/dd/yyyy hh:mm;@" 
[A1].Value = DateValue("01/01/2013 00:00") 
+1

+1表示我總是忘記的記號。 – Bathsheba

+0

文字沒有問題,因爲我使用它作爲模板來格式化SQL表中的時間戳。謝謝。 – Phil

+0

請注意,撇號將作爲一個真實的字符出現在那裏。 SQL可能不會那樣。 – Floris

2

您需要使用RangeValuË功能。
Range將是你想要的文本的單元格您想
Value將是您在細胞

Range("A1").Value="whatever text" 
相關問題