excel - 捕获类型 13 不匹配
问题描述
每次用户退出 Excel 单元格时,都会触发以下代码。然后它检查与正则表达式匹配的单元格值。这行得通。
如果用户选择了一系列单元格并可能删除了内容 - 我会收到 VBA 错误类型 13 不匹配。如何进行测试以使用户不会收到错误。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As Range)
Dim strPattern As String: strPattern = "^[a-z]{2,4}[0-9]{2,4}$"
Dim regEx As New RegExp
Dim strInput As String
Dim Myrange As Range
Set Myrange = ActiveSheet.Range("A1")
If target.Value <> "" Then
strInput = LCase(target.Value)
With regEx
此行引发类型 13 错误:
If target.Value <> "" Then
在继续之前,它需要检查 target.value 是一个单元格而不是一个范围。
解决方案
多.Value
单元格范围的 是 2D Variant 数组,因此无法与""
.
一种解决方法是添加
If Target.CountLarge > 1 Then Exit Sub
推荐阅读
- javascript - 性能问题:由于 d3 可视化,HTML 文件太大且渲染缓慢
- c# - HRESULT:0x80131040 - Microsoft.WindowsAzure.Storage 未找到
- java - 使用 java 客户端在 couchbase 中创建或更新全文搜索
- python - 如何使用另一个未对齐的更喜欢 NaN 从第二个开始更新数据框而无需 hack
- c - 在 C 中将 timeval 类型转换为字符串
- vb.net - 如何使用 TableAdapter 插入命令检索 SQL 标识?
- amazon-web-services - 从 Bitbucket Pipelines 从 Amazon ECR 中提取图像
- python - Python堆排序将数字更改为0而不是对它们进行排序
- javascript - 观察风格变化的 MutationObserver 只触发一次
- ios - iOS后台上传 - 如果应用程序崩溃,如何验证收到的响应?