尝试在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
行。
请任何帮助???
答案 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 ...
注意:在标题中你提到了整行,但在评论中你提到你仍然通过选择单个单元格得到错误,这看起来很奇怪。