【问题标题】:How do I copy and paste cells without cell formula with Powershell?如何使用 Powershell 复制和粘贴没有单元格公式的单元格?
【发布时间】:2019-06-04 22:00:49
【问题描述】:

我想将一个单元格区域复制并粘贴到 Excel 中的另一个区域中。我当前的代码正在将公式复制到新范围。但是,我只希望复制单元格值,而不是与单元格绑定的公式。我怎样才能做到这一点?

$copy3 = $worksheet.range("AF9:AF705").copy() $paste3 = $worksheet.range("P9:P705").pastespecial($copy3)

【问题讨论】:

    标签: excel powershell


    【解决方案1】:

    这是一个 Excel 问题,而不是 PowerShell 问题。因此,您需要查看 Excel 对象模型以确保您使用的是正确的代码。

    Range.PasteSpecial Method (Excel)

    您使用 PowerShell 作为这项工作的一部分这一事实确实没有实际意义。

    工作簿示例:

    $xl=new-object -com excel.application
    $xl.displayAlerts = $false # don't prompt the user
    $xl.visible = $true
    $xl.displayAlerts=$false
    
    #$xlPasteValues = $wb1.Range('A1','A1')
    
    $wb1=$xl.workbooks.open($SourceWorkbook, $null, $true)
    $wb2=$xl.workbooks.open($TargetWorkbook)
    
    $targetRange=$wb2.Worksheets.Item($TargetWorksheet).Range('B3','B3')
    
    $wb1.Worksheets.Item($SourceWorksheet).Range('C5','C5').copy()
    $wb2.Worksheets.Item($TargetWorksheet).Activate()
    
    $targetRange.PasteSpecial(-4163)
    

    此外,在这种情况下,您还可以直接赋值:

    targetRange.Value=SourceRange.Value
    

    【讨论】:

    • 非常好,尤其是直接赋值的要点!如果有人正在阅读本文并想知道-4163 来自哪里,它对应于xlPasteType 枚举中的xlPasteValues
    • 我只能用$targetRange.Value2 = $SourceRange.Value2直接赋值...
    • 是的,我的意思是添加 xlPasteValue 部分,因为我把它拿出来了,因为我展示/解释了使用宏记录器来获取所需的 Excel VBA 代码,其中显示了方法,以及将其隐蔽到 PowerShell,但认为这有点过分,并在发布前将其拉出。
    • 顺便说一句,MSDN 的使用很好,哈哈。
    • 是那个还是用这个...kiran-reddy.in/projects/powershell-excel..我收集并保存了很多东西是我发现的一个OneNote库文件,因为它迟早会回来打击你在脸上。谚语是,在互联网上,如果您有这样的问题,可能已经在某个地方提出并回答了部分或全部 - 尽管您可能需要挖掘比您想要的更多。您必须愿意挖掘、找到并保存以供以后使用和/或分享。
    猜你喜欢
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多