【问题标题】:Split results in columns将结果拆分为列
【发布时间】:2015-10-29 11:47:57
【问题描述】:

我通过将日志输出生成到 CSV 文件中来生成结果。

有没有一种方法可以使用公式或简单的 VBA 我可以拆分结果,因此 Path 的信息是 A 列,而 Access 的相应值在 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 访问:{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}

【问题讨论】:

  • 如果输出的长度不同,这会起作用吗?我一直在寻找可以执行的 vba 子程序,因为每个日志的输出长度都会有所不同
  • 您的输入文件由 PowerShell 生成。显然您正在将 Format-List 输出写入 .csv 文件。为什么要这样做而不是生成正确的 CSV 输出?

标签: excel vba powershell


【解决方案1】:

这非常、非常粗糙,而且根本不是防弹的,但也许它是您正在寻找的样板?

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。很容易让它覆盖现有的工作表,但这取决于你想要什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 2011-12-24
    • 2018-09-21
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多