根据值在excel电子表格中输入“是”或“否”

根据值在excel电子表格中输入“是”或“否”,excel,powershell,powershell-2.0,Excel,Powershell,Powershell 2.0,提前谢谢 下面是代码:我想收集下面变量的值 $Sheet3.Cells.Item($intRowDisk, 4) = $objItem.Size/1024/1024/1024 - $objItem.FreeSpace/1024/1024/1024 然后,我想比较该值,如果它大于100 GB,则在excel电子表格的一列中放置一个“是”或“否”值 if ( $Sheet3.Cells.Item($intRowDisk, 4) -gt 100 ) { $Sheet1

提前谢谢

下面是代码:我想收集下面变量的值

 $Sheet3.Cells.Item($intRowDisk, 4) = $objItem.Size/1024/1024/1024 - $objItem.FreeSpace/1024/1024/1024  
然后,我想比较该值,如果它大于100 GB,则在excel电子表格的一列中放置一个“是”或“否”值

 if ( $Sheet3.Cells.Item($intRowDisk, 4) -gt 100 ) {
            $Sheet1.Cells.Item($intRow, 12) = write "Yes"
但我得到的错误是:error:运算符'-gt'的参数不正确:无法将System.\uu ComObject与100进行比较。错误:无法将System.Int32类型的100值转换为System类型。 错误:\uuu ComObject。。 IME_InventoryV1.8.ps1 124:错误:第124行字符:49 错误:+if$Sheet3.Cells.Item$intRowDisk,4-gt为什么在if块中有write Yes?简单地指定“是”不起作用吗

write是cmdlet的别名,它将内容放入下一个命令的管道中。在这种情况下,它可能不是您想要使用的。尝试只指定字符串Yes,看看这是否解决了您的问题

此外,在您的比较中,PowerShell告诉您不能将COM对象与值100进行比较,虽然这不是特别有用。您需要包括一个调用,以便通过在表达式末尾包含方法调用值,从COM对象中实际获取值进行比较:

$Sheet3.Cells.Item($intRowDisk, 4).Value()

我想出来了。我必须添加一个变量,然后将该变量提供给if语句。现在它就像一个符咒

$Sheet3.Cells.Item($intRowDisk, 4) = $objItem.Size/1024/1024/1024 - $objItem.FreeSpace/1024/1024/1024   

        $valueforif = $objItem.Size/1024/1024/1024 - $objItem.FreeSpace/1024/1024/1024

        if ( $valueforif -gt 100 )
                    {
            $Sheet1.Cells.Item($intRow, 12) = "Yes"
        }

感谢Goyuix的反馈。不幸的是,这没有起作用。有没有办法将com对象转换为其他对象?错误引用了这部分代码:if$Sheet3.Cells.Item$intRowDisk,4-gt 100,我猜这意味着该值不是我可以读取的值?我想它应该是电子表格中的当前值,它是一个整数。。。