将结果拆分为

时间:2015-10-29 11:47:57

标签: excel vba powershell

我的结果是通过日志输出到CSV文件生成的。

是否有使用公式或简单VBA的方法我可以拆分结果,因此Path的信息是A列,B列中的Access in的对应值是什么?

路径: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 访问:{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 访问:{System.Security.AccessControl.FileSystemAccessRule,System.Security.AccessControl.FileSystemAccessRule,System.Security.AccessControl.FileSystemAccessRule}

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

1 个答案:

答案 0 :(得分: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。很容易让它覆盖现有的工作表,但这取决于你想要的。