#vba #excel #textarea
#vba #excel #текстовое поле
Вопрос:
У меня — ну, у моей подруги — есть электронная таблица Excel со смесью обычного текста и полей текстовой области — она была скопирована откуда-то с веб-сайта, она хочет, чтобы отображался просто текст в текстовых областях, а не в полях.
Помочь?
Выбор одного из текстовых полей / областей в представлении «дизайн» показывает =EMBED(«Формы.HTML:TextArea.1″,»») в строке формул. Они называются «Элемент управления 1», «Элемент управления 2» и т.д.
Есть ли хороший способ заменить поля их текстом? Предположим, что VBA-хорош, но я не могу понять, как узнать, в какой ячейке находится элемент управления, чтобы заменить себя …. полностью неверный путь?
Спасибо,
Эми
Ответ №1:
Для Excel 2013 мне пришлось внести незначительные изменения, чтобы заставить это работать. И я также хочу сказать ВАМ СПАСИБО за это, это ОТЛИЧНО сработало.
Sub Tester()
Dim o
For Each o In ActiveSheet.OLEObjects
If o.progID = "Forms.HTML:Text.1" Then
Debug.Print o.Name, o.Object.Value, o.TopLeftCell.Address()
'sometimes merged cells result from a HTML copy/paste,
' so don't just use .TopLeftCell to set the Value
o.TopLeftCell.MergeArea.Value = o.Object.Value
o.Delete
End If
Next o
End Sub
Ответ №2:
Это может приблизить вас.
Sub Tester()
Dim o
For Each o In ActiveSheet.OLEObjects
If o.progID = "Forms.HTML:TextArea.1" Then
Debug.Print o.Name, o.Object.Value, o.TopLeftCell.Address()
'sometimes merged cells result from a HTML copy/paste,
' so don't just use .TopLeftCell to set the Value
o.TopLeftCell.MergeArea.Value = o.Object.Value
o.Delete
End If
Next o
End Sub