基本上当我在excel单元格中输入文本时,我想要这个(它将居中):
重量:10磅
长度:21“
宽度:14“
在另一个细胞中成为这个:
<p align="center"><font size="2" face="Arial"></font><br></p><p align="center"><font size="2" face="Arial">Weight:10lbs<br></font><span style="font-family: Arial; font-size: small;">Length: 21"<br>Width: 14" </span></p>
我感谢任何帮助!谢谢!
答案 0 :(得分:1)
怎么样:
Cell A1: <p align="center"><font size="2" face="Arial"></font><br></p><p align="center"><font size="2" face="Arial">
Cell B1: Weight:10lbs
Cell C1: <br></font><span style="font-family: Arial; font-size: small;">
Cell D1: Length: 21"
Cell E1: <br>
Cell F1: Width: 14"
Cell G1: </span></p>
你想要的结果是
Cell H1: =A1&B1&C1&D1&E1&F1&G1
将列重新排列到方便的位置,拉出字段名称,然后使用测量值等等......同样的想法。
如果您已经在一个单元格中拥有所有三个字段,那么您可以轻松地将它们拆分成列:
=SUBSTITUTE(A1, CHAR(10), "|")
以获取B1中垂直线分隔的数据。|
作为分隔符。答案 1 :(得分:1)
其他两个答案都非常有效。此解决方案不使用VBA。它与John类似,只是它使用SUBSTITUTE
的多个实例从模板创建新文本。
假设您的值在A2-C2中(这是任意的,由您自行决定)。
$ A $ 1的模板
<p><br></p>
<p align="center"><font size="2" face="Arial">
{0}<br></font><span style="font-size: small;">{1}<br>{2}"
</span></p>
结果文字
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A$1, "{0}", A2), "{1}", B2), "{2}", C2)
优于使用串联的方法的优点是,您可以从根本上更改项目在模板中的显示顺序,而无需更改产生结果的函数。
即使您的模板已更改为下面的模板,也不必更改使用substitute
的相同功能,如果您的行数较少,这很方便。
<div>{2}<table><tr><td>{0}</td><td>{1}</tr></table></div>
答案 2 :(得分:0)
您的要求不明确,这就是我所拥有的:
Public Sub Change()
Dim a As String
a = Range("A1:A1")
'MsgBox a
Dim resultCell As Range
Set resultCell = Range("A2:A2")
Dim splitVals As Variant
splitVals = Split(a, Chr(10))
resultCell.Value = "<p align='center'><font size='2' face='Arial'></font><br></p><p align='center'><font size='2' face='Arial'>" & splitVals(0) & "<br></font><span style='font-family: Arial; font-size: small;'>" & splitVals(1) & "<br>" & splitVals(2) & " </span></p>"
End Sub
将您的值放在第一个单元格中,使用Alt +输入为新行,您将得到低于该值的结果。