有没有办法在Excel中格式化将文本转换为HTML?

时间:2013-09-24 19:03:40

标签: html excel excel-vba vba

基本上当我在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"&nbsp;</span></p>

我感谢任何帮助!谢谢!

3 个答案:

答案 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:  &nbsp;</span></p>

你想要的结果是

Cell H1:  =A1&B1&C1&D1&E1&F1&G1

将列重新排列到方便的位置,拉出字段名称,然后使用测量值等等......同样的想法。

如果您已经在一个单元格中拥有所有三个字段,那么您可以轻松地将它们拆分成列:

  • 如果您的数据位于A1中,请放置=SUBSTITUTE(A1, CHAR(10), "|")以获取B1中垂直线分隔的数据。
  • 按值将B1粘贴到C1。
  • 使用“文本到列”工具将C1中的字段分隔为C1和相邻列,使用|作为分隔符。

答案 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) & "&nbsp;</span></p>"



End Sub

将您的值放在第一个单元格中,使用Alt +输入为新行,您将得到低于该值的结果。