0

基本上,当我在 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>

我很感激任何帮助!谢谢!

4

3 回答 3

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 中。
  • 使用 Text to Columns 工具将 C1 中的字段分隔为 C1 和相邻的列,|用作分隔符。
于 2013-09-24T19:13:57.767 回答
1

其他两个答案都非常有效。此解决方案不使用 VBA。它与 John 的相似,只是它使用多个实例SUBSTITUTE从模板创建新文本。

假设您的值在 A2-C2 中(这是任意的,由您自行决定)。

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也不必更改相同的函数 using,如果您的行数较少,这很方便。

<div>{2}<table><tr><td>{0}</td><td>{1}</tr></table></div>
于 2013-09-24T19:30:07.040 回答
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 + enter 作为新行将您的值放在第一个单元格中,您将获得低于该值的结果。

于 2013-09-24T19:23:47.893 回答