提问人:Yodelayheewho 提问时间:11/16/2023 最后编辑:Raymond ChenYodelayheewho 更新时间:11/18/2023 访问量:46
如何修复范围值的运行时错误 13 不匹配?
How do I fix a run-time error 13 mismatch on a range value?
问:
以下代码为我每次单击命令按钮以保存顺序/行时创建/更新日期和时间戳。“TIMESTAMP”是工作表中名为“MASTER”的命名区域(第 106 列)。代码在工作表对象“MASTER”中输入。 我试图将 Dim r As Range 更改为 Dim r As String,因为工作表中的第 106 列格式为文本,但这没有帮助。我还尝试了 Debug.Print 错误行,但我一定没有这样做,因为我在即时窗口中没有得到任何结果。
但是,我收到运行时错误“13” - 类型不匹配。
- 打开用户表单并搜索订单/行
- 单击保存命令按钮
- 弹出运行时错误,所以我单击“结束”,这将关闭用户窗体
- 再次打开用户窗体
- 搜索相同的顺序/行
- 单击保存命令按钮
- 不显示错误消息
提前感谢您的帮助。
'***TIMESTAMP***
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Dim Intersection As Range
Dim cell As Range
Set r = Range("TIMESTAMP")
Set Intersection = Intersect(r, Target)
If Intersection Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each cell In Intersection
Range(r & cell.Row).Value = Date & " " & Time 'run-time error '13' - Type mismatch
Next cell
Application.EnableEvents = True
End Sub
我正在编辑这篇文章,以展示我尝试过但没有成功的东西。
- 修订版:将交集调暗为字符串
- 编译错误:需要对象
- 错误线:设置交集 = 相交(r,目标)
- 修订版:删除了 Set Intersection = Intersect(r,Target) 中的“Set”
- 编译错误:类型不匹配
- 错误行:如果 Intersect 为 Nothing Then Exit Sub
- 修订版:将交叉点调暗为变体
- 运行时错误“91”:对象变量或未设置块变量
- 修订版:设置交集 = 相交(r,目标)
- 让我回到原来的问题 - 运行时错误“13” 在线类型不匹配:Range(r & cell.行)。值 = 日期 & “ ” & 时间
答:
0赞
sous2817
11/17/2023
#1
可能有几种方法可以解决这个问题,但这似乎对我有用:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lr As Long
Dim a As Range
Application.EnableEvents = False
Sheets("MASTER").Cells(Target.Row, Range("TIMESTAMP").Column).Value = Date & " " & Time
lr = Sheets("MASTER").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Set a = ThisWorkbook.Names("TIMESTAMP").RefersToRange.CurrentRegion
Set a = Range("TIMESTAMP").Resize(lr)
a.Name = "TIMESTAMP"
Application.EnableEvents = True
End Sub
这应该更新命名范围“TIMESTAMP”,以包含已更改的任何行。
应更新工作表引用以匹配工作簿。如果您有任何问题或未按预期工作,请告诉我。
祝你好运!
评论
0赞
Yodelayheewho
11/18/2023
您的代码有效。非常感谢!如果我使用工作表名称“MASTER”而不是“Sheet1”,您将如何编辑它?
0赞
sous2817
11/18/2023
@Yodelayheewho更新了代码,使其位于“MASTER”表上。很高兴它有帮助!
0赞
Yodelayheewho
11/20/2023
完善!再次感谢!
评论