В основном, когда я ввожу текст в ячейку 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>
Я ценю любую помощь! Спасибо!
Два других ответа являются очень важными. Это решение не использует VBA. Он похож на Джона, за исключением того, что он использует несколько экземпляров 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>
Как насчет:
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.|
как разделитель.Ваше требование не ясно, это то, что у меня есть:
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 + введите в качестве новой строки, и вы получите результат ниже этого.