Извлечение текста из набора =EMBED(«Формы.HTML:TextArea.1″,»») в Excel

#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