首页 > 解决方案 > 在 Powershell 中使用 ComOject Excel.Application 选择活动工作表中的所有单元格

问题描述

Powershell 非常新。

情况:

我下面的脚本旨在执行以下操作:

  1. 打开新工作簿
  2. 在单元格“A1”中输入“这是 A1”
  3. 选择活动工作表中的所有单元格
  4. 将选择设置为 TEXT 数据格式

这是我的 Powershell 脚本:

$excel = New-Object -Com Excel.Application
$excel.visible = $true
$book = $excel.Workbooks.Add()
$book.ActiveSheet.Range("A1").Value = "This is A1"
$worksheet = $book.ActiveSheet.UsedRange.Cells
$colcount = $worksheet.columns.count
$copyrange = $worksheet.range("1:$colcount").numberformat = "@"

问题:

我不知道如何在命令中编写全选,因为当我运行我的脚本时,它只生成'A1 & B1' TEXT单元格,其他所有内容都保留为GENERAL格式。我想使范围动态。

这是我在 VBA 中的脚本:

Sub TEXT_FORMAT()

    ActiveCell.FormulaR1C1 = "This is A1"
    Cells.Select
    Selection.NumberFormat = "@"

End Sub

我试图遵循的脚本:

如何使用Powershell在excel中全选

任何人都可以帮助我如何使用我的 SELECT ALL 语句使这更加动态吗?

非常感激。

标签: excelpowershellcomobject

解决方案


试试这个,它对我有用。您可以通过选择所有行(或)所有列来应用数字格式

$excel = New-Object -Com Excel.Application
$excel.visible = $true
$book = $excel.Workbooks.Add()
$worksheet = $book.ActiveSheet
$worksheet.Range("A1").Value2 = "This is A1" # Use the property 'Value2'
$worksheet.Rows.NumberFormat = "@"
# $worksheet.Columns.NumberFormat = "@" # this also sets number format of all cells to 'Text'

推荐阅读