有没有办法在Excel中格式化文本到HTML?
基本上,当我在一个Excel单元格中input文本时,我想要这个(将居中):
重量: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>
我感谢任何帮助! 谢谢!
另外两个答案都是非常有效的。 此解决scheme不使用VBA。 除了使用多个SUBSTITUTE
实例从模板创build新的文本之外,它与John类似。
假设你的值在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
的相同function也不必更改,如果您的行数较less,则这很方便。
<div>{2}<table><tr><td>{0}</td><td>{1}</tr></table></div>
关于什么:
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
重新排列列以方便,拔出字段名称,只是使用测量等…相同的想法。
如果你已经把所有的三个字段放在一个单元格中,那么你可以很容易地将它们分成列:
- 如果您的数据在A1中,则将位置
=SUBSTITUTE(A1, CHAR(10), "|")
以获得由B1中的垂直线分隔的数据。 - 将B1按值粘贴到C1中。
- 使用Text to Columns工具将C1中的字段分隔为C1和相邻列,使用
|
作为分隔符。
您的要求不清楚,这是我有:
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 +input新行,你会得到低于你的结果。