获取错误13在Excel中复制整行时键入不匹配

时间:2018-01-15 07:15:47

标签: excel vba excel-vba

尝试在VBA中复制行时,我收到错误13类型不匹配。

这是我收到错误的地方。

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim i As Integer
    i = ActiveCell.Row
    Dim cel As Range
    If Sh.Name <> "BatchRun" And Sh.Name <> "Document Control" And Sh.Name <> "TC Summary" And Sh.Name <> "Test Cases" And Sh.Name <> "StaticData" And Sh.Name <> "Screenshot" Then
        If Target = Range("A" & i) Then
            Range("A" & i).Cells.ClearContents
            screens
        ElseIf Target = Range("B" & i) Then
            Range("B" & i).Cells.ClearContents
            Environment_list
        ElseIf Target = Range("C" & i) Then
            Range("C" & i).Cells.ClearContents
            Objects
        ElseIf Target = Range("D" & i) Then
            Range("D" & i).Cells.ClearContents
            Keywords_list
        End If
    End If
End Sub

错误来自第If Target = Range("A" & i) Then行。

请任何帮助???

1 个答案:

答案 0 :(得分:1)

只要“选择”是单个单元格,您的代码就可以正常工作(我必须评论对Sub的调用)。 选择多个单元格时会生成您发布的错误。 由于Target被解释为Target中的值,因此无法针对多个单元格进行评估,从而导致错误。

您可以考虑更改测试,更具体,例如,而不是

If Target = Range("A" & i) Then

使用

If Target.Value = Range("A" & i).Value Then

If Target.Address = Range("A" & i).Address Then

或者也许是另一种选择。 这可能有助于澄清您要执行的实际测试(它们可能会给出不同的结果)。 如果您需要的是第一个,您应该在使用Target.Value或使用On Error ...

之前通过查询来处理多个选定单元格的可能情况

注意:在标题中你提到了整行,但在评论中你提到你仍然通过选择单个单元格得到错误,这看起来很奇怪。