2013-12-16 112 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" 
相关问题