【问题标题】:Insert complicated Excel formula using Powershell使用 Powershell 插入复杂的 Excel 公式
【发布时间】:2015-10-12 16:59:17
【问题描述】:

这里是原文:link.

现在我的问题是:

使用 .formula,我可以走得很远,但我有一个非常复杂的公式,它不想工作。

在 Excel 中工作的代码:

=IF(ISBLANK(G2),"",VLOOKUP("*"&LEFT(G2,9)&"*",'\\compname\path\to\excel\[ramdata.xlsx]20151009'!A:B,2,FALSE))

在Powershell中不起作用的代码:

$ws.Cells.Item($intRow,9).Formula = '=VLOOKUP("*"$([char]38)LEFT(G$intRow,5)$([char]38)"*",'\\compname\path\to\excel\[ramdata.xlsx]20151009'!A:B,2,FALSE)'

在我运行 powershell 脚本后,我插入公式的单元格是空白的。

有什么想法吗?

【问题讨论】:

    标签: excel powershell excel-formula


    【解决方案1】:

    我是如此接近,需要寻求帮助才能找到答案!

    $ws.Cells.Item($intRow,9).Formula = "=IF(ISBLANK(G$intRowMem),$([char]34)$([char]34),VLOOKUP($([char]34)*$([char]34)&LEFT(G$intRowMem,5)&$([char]34)*$([char]34),'\\compname\path\to\excel\[ramdata.xlsx]20151009'!A:B,2,FALSE))"
    

    回答你自己的问题并将你的答案标记为答案是否合乎道德?

    编辑

    根据@TheMadTechnician,这也可以解决为:

    $ws.Cells.Item($intRow,9).Formula = "=IF(ISBLANK(G$intRowMem),`"`",VLOOKUP(`"*`"&LEFT(G$intRowMem,5)&`"*`",'\\compname\path\to\excel\[ramdata.xlsx]20151009'!A:B,2,FALSE))"
    

    【讨论】:

    • 哇,你费了很大劲才得到那些双引号……以后你可以在字符串中用反引号 (`) 转义它们,或者将它们加倍,例如 "The path ""C:\Temp"" doesn't actually need quotes around it" 将显示为 The path "c:\temp" doesn't actually need quotes around it。如果它确实回答了问题,那么接受你自己的答案就可以了。
    • 我使用了反引号,但认为它不起作用。真正发生的是我一次尝试了很多事情。我确实尝试过,而且效果很好。
    • 你可以做到但需要稍等:stackoverflow.com/help/accepted-answer
    • 我知道这是一个旧的,但谢谢! - 拉我的头发好几个小时试图弄清楚这一点! - 我曾尝试使用 ´"´" 的方法,但没有意识到我使用了不正确的字符来转义(´ 而不是 `)
    猜你喜欢
    • 2021-12-18
    • 1970-01-01
    • 2020-12-20
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多