Есть ли способ отформатировать в Excel, чтобы превратить текст в HTML?

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>

Я ценю любую помощь! Спасибо!

Теги:
excel-vba
excel

3 ответа

1

Два других ответа являются очень важными. Это решение не использует 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>
  • 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 и соседние столбцы, используя | как разделитель.
  • 0
    Я привык так поступать, и я обнаружил, что если вам когда-нибудь понадобятся большие изменения, это может стать проблематичным. Тем не менее, это правильное решение.
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 + введите в качестве новой строки, и вы получите результат ниже этого.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню