首页 > 解决方案 > 如何从powershell在excel中查找特定行并合并/居中单元格

问题描述

我有一个从另一个部署工具创建的 excel 文档,该工具读取数组值并创建 excel 文档。我正在尝试添加遍历 b 列并找到空值并合并单元格 a 到 c 的功能。

我想使用的逻辑是遍历B列并查找空单元格,获取单元格行号并使用它来确定我要合并和居中的值在哪里(即下图中的server1)。然后,我将合并该行并将其居中并继续循环,直到到达使用范围的末尾。

我曾尝试使用 Range.FindNext(string value) 属性,但未能使其正常工作。

当前布局示例如下:

```

我要拍摄的内容:

在此处输入图像描述

标签: excelpowershell

解决方案


您可以遍历工作表使用范围内的每一行,在 B 列中查找具有空值 ("") 的行,然后将该行的 A 列合并到 C 列。如果你想从 PowerShell 运行它,你可以在 Excel 中创建一个新模块,然后从 PowerShell 打开 excel 文件,从 PowerShell 运行你的模块,然后保存。希望有帮助。

Public Sub Test()
    Dim i As Long
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row 'Only loop through used rows

    'skip row 1 since it has the headers
    For i = 2 To lastRow 
        If Range("B" & i) = "" Then
            Range("A" & i & ":C" & i).Merge
            Range("A" & i & ":C" & i).HorizontalAlignment = xlCenter
        End If
    Next
End Sub

推荐阅读