3

У меня есть огромная таблица компьютеров и программного обеспечения, установленного на них.
К сожалению, в отчете перечислено все программное обеспечение, установленное для ПК, в одной ячейке.

Мне нужна формула или макрос, который будет проходить через все части программного обеспечения в ячейке, извлекать все программное обеспечение, содержащее слово Microsoft, и помещать его в новую ячейку в следующем столбце той же строки. Он должен делать это для каждого найденного элемента, чтобы каждый установленный продукт Microsoft отображался в отдельных ячейках в 1 строке.

Я пробовал разные вещи, но не уверен, как заставить его выводить каждый экземпляр. Я предполагаю, что для этого нужен какой-то массив и цикл, но не знаю, как это сделать.

Если требуется дополнительная информация, пожалуйста, дайте мне знать.
Ваша помощь будет принята с благодарностью.

Программная ячейка выглядит так:

"Плагин Adobe Flash Player 10 | 10.3.181.26"; "Adobe Flash Player 11 ActiveX 64-bit | 11.0.1.152"; «Adobe Reader 9.4.6 | 9.4.6»; «Агент развертывания Altiris | 1.0.0»; «BigFix Enterprise Client | 7.2.5.22»; "Citrix Access Gateway Plugin | 4.6.1.2700"; "Citrix Password Manager Plugin | 4.6.264.0"; "Citrix XenApp Web Plugin | 11.0.0.5357"; «Обновление определения для Microsoft Office 2010 (KB982726)»; «Драйвер графического ускорителя Intel (R)»; "JXplorer | 3.2.2"; «Java (TM) 6, обновление 16 | 6.0.160»; «Агент McAfee | 4.5.0.1852»; "McAfee AntiSpyware Enterprise Module | 8.7.0.129"; «McAfee Encrypted USB Client | 1.5.0»; «McAfee VirusScan Enterprise | 8.7.0»; «Профиль клиента Microsoft .NET Framework 4 | 4.0.30319»; «Клиент Microsoft Application Virtualization Desktop Client | 4.6.0.1523»; «Надстройка конференц-связи Microsoft для Microsoft Office Outlook | 8.0.6362.187»; «Microsoft Office Communicator 2007 | 2.0.6362.189»; «Microsoft Office InfoPath MUI (на английском языке) 2010 | 14.0.4763.1000»; «Microsoft Office Live Meeting 2007 | 8.0.6362.187»; «Microsoft Office профессиональный плюс 2010 | 14.0.4763.1000»; «Microsoft Office Visio 2007 с пакетом обновления 2 (SP2)»; «Microsoft Office Visio Professional 2007 | 12.0.6425.1000»; «Microsoft Сохранить как PDF или XPS надстройка для программ Microsoft Office 2007 | 12.0.4518.1014»; "Microsoft Silverlight | 4.0.60831.0"; "Microsoft Sync Framework Runtime v1.0 (x86) | 1.0.1215.0"; «Службы Microsoft Sync Framework v1.0 (x86) | 1.0.1215.0»; «Распространяемый Microsoft Visual C++ 2005 - KB2467175 | 8.0.51011»; «Microsoft

2 ответа2

3

Это должно сделать работу, просто замените рабочий лист и диапазон:

Sub ExtractSoftware()
    Dim ws as Worksheet    
    Dim lngRow As Long
    Dim rngSource As Range
    Dim rng As Range
    Dim varElement As Variant

    Set ws = Sheets("YourSheet")
    For lngRow = 1 To ws.Range("A1000000").End(xlUp).Row
        Set rngSource = ws.Cells(lngRow, 1)
        Set rng = rngSource.Offset(, 1)

        For Each varElement In Split(rngSource.Value, ";")
            If InStr(varElement, "Microsoft") Then
                varElement = Trim(varElement)
                rng.Value = Mid(varElement, 2, Len(varElement) - 2)
                Set rng = rng.Offset(, 1)
            End If
        Next varElement
    Next lngRow

End Sub
2

Я бы использовал комбинацию Find and Replace и Text to Columns .

  1. Скопируйте соответствующий столбец в конец строки. Мы собираемся заменить некоторые данные, поэтому, выполнив это во втором столбце, вы потеряете ваши данные, если допустите ошибку. (Пояс и подтяжки!)

  2. Используйте функцию « Find and Replace чтобы заменить все экземпляры Microsoft двумя специальными символами, которых больше нет в этом столбце. Я часто использую ¬ и `, поскольку они используются редко, поэтому вы заменяете Microsoft на ¬`.

  3. Теперь используйте функцию Text to Columns на вкладке данных. Установите свой разделитель в качестве первого специального символа: ¬. Теперь это должно дать вам ячейки с префиксом элементов Microsoft. Тем не менее, у вас также есть много других вещей, следующих за ним.

  4. Чтобы удалить этот посторонний материал, выделите все столбцы, содержащие эту информацию, и выполните еще один Find and Replace . Найдите это :; * и замените ничем (оставьте текстовое поле пустым). Это должно убрать все, что не Microsoft, что вы не хотите.

  5. Наконец, вы можете повторно добавить свой ярлык Microsoft, выполнив Find and Replace и замену на ` и изменив его обратно на Microsoft.

  6. Вы можете иметь некоторые выдающиеся "следящие " знаки. Используйте другой Find and Replace чтобы удалить их.

Как только вы привыкнете к такой информации, вы сможете сделать это очень быстро, поверьте мне!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .