У меня есть CSV-файл. Когда я открываю файл CSV в Microsoft Excel, у меня есть столбец.

Каждая ячейка в столбце имеет количество абзацев. каждый абзац имеет много URL.

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

Все URL начинаются с http:// и заканчиваются на .jpg

Как я могу сделать это в Excel или Notepad++

заранее спасибо

1 ответ1

0

Вот код, который будет разбивать ячейки с переводами строк на столбцы. Вы должны быть в состоянии настроить его в зависимости от того, как выглядят ваши абзацы.

Sub SplitCellsAndExtend_New()
'takes cells with inside line feeds and creates new row for each.
'reverses merge into top cell.

'turn off updates to speed up code execution
With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
End With


Dim strCell As String, lastRow As Long, lRowLoop As Long, j As Long, arSplit
Application.ScreenUpdating = False

Const lColSplit As Long = 4
Const sFirstCell As String = "A1"
Dim sSplitOn As String
sSplitOn = Chr(10)

lastRow = Cells(Rows.Count, lColSplit).End(xlUp).Row

    For lRowLoop = lastRow To 1 Step -1

        arSplit = Split(Cells(lRowLoop, lColSplit), sSplitOn)

        If UBound(arSplit) > 0 Then
            Rows(lRowLoop + 1).Resize(UBound(arSplit) + 1).Insert

            Cells(lRowLoop, lColSplit).Resize(, UBound(arSplit) + 1).Value = arSplit
            Cells(lRowLoop, lColSplit).Resize(, UBound(arSplit) + 1).Copy
            Cells(lRowLoop + 1, lColSplit).PasteSpecial Transpose:=True

            Cells(lRowLoop, 1).Resize(, lColSplit - 1).Copy Cells(lRowLoop + 1, 1).Resize(UBound(arSplit) + 1)

            Rows(lRowLoop).Delete
        End If

        Set arSplit = Nothing
    Next


With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
End With


End Sub

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