2015-07-21 171 views
0

我试图在宏将数据填充到单元格后更改单元格中的内容。例如,我的宏将在单元格中放置750。然后我需要在750之后放置一个“T”,而不删除750. 750每次使用宏都会改变,所以我不能只使用ActiveCell.FormulaR1C1 = "750 T"使用VBA将文本添加到单元格而不删除单元格中已有的内容

它总是一个添加了“T”的数字,但如果它被格式化为文本则很好。

+3

怎么样'ActiveCell.Value = ActiveCell.Value&“T”' – padawan0007

+0

为什么不让你的宏添加T? –

+0

你使用的是什么代码?您可以将该值存储到变量中,然后连接“T” – Raystafarian

回答

4

你要保持那里的东西,并添加一个T,所以这里是如何:

ActiveCell.Value = ActiveCell.Value & " T" 

您可以更改ActiveCell到任何你想要的。

完全从@ padawan0007剽窃,虽然答案很明显。

另外我必须问你是否使用ActiveCell.FormulaR1C1出于特定原因?如果您未插入实际公式,则应该使用.Value。

+1

我对编程非常陌生,显而易见的答案对我来说并不总是那么明显。谢谢您的帮助。 – bdkong

+0

'ActiveCell.FormulaR1C1 =“750 T”'看起来好像是在录制一个宏后手工输入'750 T'到一个单元格后产生的代码行。我愿意打赌,这就是为什么他使用'.FormulaR1C1'而不是'.Value' – padawan0007

+0

你会是对的@ padawa0007。我记录了我所能掌握的一个宏,现在我正在回顾它并改变我需要的部分。不是最好的或最干净的方法,但我没有太多选择。 – bdkong

4

更灵活的方法是对这样的任意后缀使用自定义格式。例如,

ActiveCell.NumberFormat = "#,##0 T;-#,##0 T" 

会把T作为你想为750吨不必重新运行宏750号更改时的开销。您可以在不影响T后缀的情况下对这些单元格值进行复制,粘贴,排序和执行常规操作。

+0

同意这一点 - 通过VBA宏应用格式,或者如果它是一组特定的单元格,您甚至可以手动应用格式化标准。无论哪种方式,如果您希望基数在那里,这将对您更有用。另一方面,如果你需要在你的操作中使用T(例如:假设你想检查“250 T”是否与你的任何单元格相匹配),你需要在单元格中添加“T”另一个答案。 –

+0

这种方式更好。我很懒。 – padawan0007

相关问题