2015-10-29 3 views
0

У меня есть результаты, сгенерированные выходом журнала в файл CSV.Сплит результатов в столбцах

Есть ли способ с формулой или простой VBA. Я могу разделить результаты, чтобы информация для Path была столбец A и соответствующее значение для Access in в столбце B?

Путь: Microsoft.PowerShell.Core \ FileSystem :: C: \ Users \ VMA \ Desktop \ VMADMIN \ CSV доступа: {System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule, System.Security .AccessControl.FileSystemAccessRule}

Путь: Microsoft.PowerShell.Core \ FileSystem :: C: \ Users \ VMA \ Desktop \ VMADMIN \ Test Access: {System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl. FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule}

Путь: Microsoft.PowerShell.Core \ FileSystem :: C: \ Users \ vma \ Desktop \ VMADMIN \ test1 доступа: {System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule}

Путь: Microsoft.PowerShell.Core \ FileSystem :: C: \ Users \ VMA \ Desktop \ VMADMIN \ test2 доступа: {}

Путь: Microsoft.PowerShell.Core \ FileSystem :: C: \ Users \ VMA \ Desktop \ VMADMIN \ tEST3 Access: {System.Security.AccessControl.FileSystemAccessRule, System .Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule}

http://i.stack.imgur.com/ljiFQ.png

+3

Копирование столбца A в столбец B, удалите B1 с помощью Shift-ячеек, затем фильтруйте ColumnA для выбора и удаления строк 'Access'. – pnuts

+0

Будет ли это работать, если выход отличается по длине? Я прыгал на vba sub, который я могу выполнить, поскольку длина вывода будет отличаться для каждого журнала. –

+1

. Ваш входной файл генерируется PowerShell. По-видимому, вы записываете вывод «Format-List» в CSV-файл. Почему вы это делаете вместо того, чтобы генерировать правильный вывод CSV? –

ответ

0

Это очень, очень грубо и вовсе не пуленепробиваемый, но, возможно, это шаблон для того, что вы ищете?

Sub PathAccessSplit() 

    Dim wsFrom, wsTo As Worksheet 
    Dim rowFrom, rowTo, lastRow As Integer 
    Dim cellVal As String 

    Set wsFrom = Sheets("Sheet1") 
    Set wsTo = Sheets("Sheet2") 

    lastRow = wsFrom.Cells(wsFrom.Rows.Count, "A").End(xlUp).Row 
    rowTo = 1 

    For rowFrom = 1 To lastRow 
    cellVal = wsFrom.Cells(rowFrom, 1).Text 

    If (Left(cellVal, 4) = "Path") Then 
     wsTo.Cells(rowTo, 1).Value = cellVal 
    ElseIf (Left(cellVal, 6) = "Access") Then 
     wsTo.Cells(rowTo, 2).Value = cellVal 
     rowTo = rowTo + 1 
    End If 


    Next rowFrom 

End Sub 

Это, конечно, предполагает, что исходные данные находятся в Sheet1, а выход будет перенаправлен на Sheet2. Достаточно легко переписать существующий лист, но это зависит от того, что вы хотите.

+0

Работает отлично, спасибо –

Смежные вопросы