如何修复范围值的运行时错误 13 不匹配?

问题描述 投票:0回答:1

每次单击命令按钮保存订单/行时,以下代码都会创建/更新日期和时间戳。 “TIMESTAMP”是工作表中名为“MASTER”的命名范围(第 106 列)。该代码被输入到工作表对象“MASTER”中。 我尝试将 Dim r As Range 更改为 Dim r As String 因为工作表中的第 106 列格式为文本,但这没有帮助。我还尝试 Debug.Print 错误行,但我一定做得不对,因为我在立即窗口中没有得到任何结果。

但是,我收到运行时错误“13” - 类型不匹配。

  1. 打开用户表单并搜索订单/行
  2. 单击保存命令按钮
  3. 弹出运行时错误,因此我单击“结束”,这会关闭用户窗体
  4. 再次打开用户表单
  5. 搜索相同订单/行
  6. 单击保存命令按钮
  7. 没有出现错误信息

预先感谢您的帮助。

'***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

我正在编辑这篇文章,以展示我已经尝试过但没有成功的内容。

  1. 修订:将交叉点变暗为字符串
  2. 编译错误:需要对象
  3. 错误行:Set Intersection = Intersect(r, Target)
  4. 修订:删除了 Set Intersection = Intersect(r,Target) 中的“Set”
  5. 编译错误:类型不匹配
  6. 错误行:If Intersect is Nothing then Exit Sub
  7. 修订:暗淡交叉点作为变体
  8. 运行时错误“91”:未设置对象变量或 With 块变量
  9. 修订:设置交集 = Intersect(r, Target)
  10. 让我回到原来的问题 - 运行时错误'13'在线类型不匹配:Range(r & cell.Row).Value = Date & " " & Time
excel vba runtime-error named-ranges
1个回答
0
投票

可能有很多方法可以解决这个问题,但这似乎对我有用:

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”以包括已更改的任何行。

您应该更新工作表引用以匹配您的工作簿。如果您有任何问题或未按预期工作,请告诉我。

祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.