excel - 我需要在 Excel Range.Find 中定义默认值,还是可以跳过一些参数?
问题描述
我需要使用Range.Find在 Excel 文档中进行不区分大小写的搜索。
我目前正在使用以下命令尝试对https://haveibeenpwned.com返回的任何电子邮件地址进行不区分大小写的搜索
$Found = $WorkSheet.Cells.Find($SearchText, $null, "xlValues", "xlWhole", "xlByRows", 1, $false) #What, After, Lookin, LookAt, SearchOrder, MatchCase
它返回:
WARNING: [] No public exploits found!
Type mismatch. (Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))
At C:\Users\qqqq\Documents\incidents\Search-PwnAddress.ps1:31 char:9
+ $Found = $WorkSheet.Cells.Find($SearchText, $null, "xlValues" ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
如何正确进行范围查找以便进行不区分大小写的搜索?
解决方案
从Range.Find - 注意xlValues
,xlWhole
和xlByRows
不被称为String
s,而是常数。它们是特定的成员-Enumerations
和 XlFindLookIn
枚举。XlLookAt
XlSearchOrder
枚举具有引用特定值的描述性名称的成员 - 因此在这种情况下,您可以使用相应的值作为参数。尝试将它们的名称传递为Strings
- 即"xlValues"
- 将引发“类型不匹配”错误。
xlValues
: -4163xlWhole
: 1xlByRows
: 1
另请注意,您应该使用[Type]::Missing
而不是$null
,正如这个答案所暗示的那样。
推荐阅读
- mongodb - 一段时间后 Azure 容器实例中的 MongoDb 失败
- python - 如何处理 Pandas 中等于“NA”的列?
- amazon-s3 - 您可以将 .aws/config 中的代码直接放入您的程序吗?
- powershell - 使用 Powershell 捕获数据输出并将日期和时间包含到 CSV 文件中
- ruby-on-rails - 在 Rails 中,如何轻松地将所有记录重置为模型文件中声明的默认属性值?
- latex - 打开 Latex Overleaf 模板:Parskip.sty 未找到?
- c# - 如何使用将静态成员方法作为参数的 [Theory] 标记进行 C# XUnit 测试?
- javascript - 即使刷新页面,如何在页面中保留附加的 html 元素
- html - 图像在第一次画廊加载时重叠
- google-sheets - 计算按列中的项目分组的日期之间的持续时间