VBA运行时错误13如果状态不匹配,则类型不匹配
我收到运行时错误“13”:尝试运行代码时类型不匹配。Debug突出显示了“IF”语句,但我不知道错误在哪里。任何帮助都将不胜感激。谢谢VBA运行时错误13如果状态不匹配,则类型不匹配,vba,excel,Vba,Excel,我收到运行时错误“13”:尝试运行代码时类型不匹配。Debug突出显示了“IF”语句,但我不知道错误在哪里。任何帮助都将不胜感激。谢谢 Dim i As Integer Dim lastRow As Long Workbooks("Template Part_II.xlsx").Worksheets(2).Activate lastRow = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To lastRow If Cells
Dim i As Integer
Dim lastRow As Long
Workbooks("Template Part_II.xlsx").Worksheets(2).Activate
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastRow
If Cells(i, 1).Value <> "#N/A" And Cells(i, 1).Value <> "00000000-000" Then
Cells(i, 1).Copy
Worksheets(1).Range("A2:A" & lastRow).PasteSpecial xlPasteValues
End If
Next I
Dim i作为整数
最后一排一样长
工作手册(“模板部分_II.xlsx”)。工作表(2)。激活
lastRow=单元格(Rows.Count,1).End(xlUp).Row
对于i=2到最后一行
如果单元格(i,1).值为“#N/A”且单元格(i,1).值为“00000000-000”,则
细胞(i,1)。复制
工作表(1).范围(“A2:A”和lastRow).粘贴特殊XLPasteValue
如果结束
接下来我
事实上,我正试图做到这一点:我有一张表,其中我有100行不同的ID,我想将此ID复制到另一张表,而不带可能的非ID字符串。在这种情况下,它可以是#N/A或00000000-0000,此外,我不希望那些未复制的单元格在目标区域中显示为空白。将您对单元格的访问包装在一个复选框内,以确保单元格不包含任何错误值(例如,单元格“包含”0的除法),如下所示
...
For i = 2 To lastRow
If Not IsError(Cells(i, 1).Value) Then
If Cells(i, 1).Value <> "#N/A" And Cells(i, 1).Value <> "00000000-000" Then
Cells(i, 1).Copy
Worksheets(1).Range("A2:A" & lastRow).PasteSpecial xlPasteValues
End If
End If
Next i
...
将对单元格的访问包装在一个检查中,确保单元格不包含任何错误值(例如,单元格“包含”一个除0),如下所示
...
For i = 2 To lastRow
If Not IsError(Cells(i, 1).Value) Then
If Cells(i, 1).Value <> "#N/A" And Cells(i, 1).Value <> "00000000-000" Then
Cells(i, 1).Copy
Worksheets(1).Range("A2:A" & lastRow).PasteSpecial xlPasteValues
End If
End If
Next i
...
您的
for
的下一个在哪里?放弃复制它。但是它在代码中,并且不起作用。当错误发生时,单元格(i,1)的值是多少。值
?您是否知道您正在将所有内容粘贴到同一单元格中?你想做什么?当错误发生时,单元格的值不是000000000-000,也不是000000000-000,它是000000000-000以上的单元格,我并没有复制同一单元格中的所有内容,我看到它会按预期进行复制,直到值不是000000000-000,你的for
的下一个在哪里?放弃复制它。但是它在代码中,并且不起作用。当错误发生时,单元格(i,1)的值是多少。值
?您是否知道您正在将所有内容粘贴到同一单元格中?你想做什么?当错误发生时,单元格的值不是000000000-000或#N/A,它是000000000-000以上的单元格,我并没有复制同一单元格中的所有内容,我看到它会按预期复制,直到值不是000000000-000,VBA中缺少短路一直困扰着我:'(是的,下一次尝试只是“继续”当前循环迭代->不可用:实际上这是可行的,但有点难看:将您的For…next
包装为Do…而False
并使用Exit For
跳到下一次迭代。哈哈,耶:)但是你也有嵌套块;很酷的把戏抱歉..走错了路:把你所有的代码都放在For…Next
的Do…循环中,而False
则用Exit Do
跳转到下一个迭代。VBA中缺少短路一直困扰着我:'(是的,下一次尝试只是“继续”当前循环迭代->不可用:实际上这是可行的,但有点难看:将您的For…next
包装为Do…而False
并使用Exit For
跳到下一次迭代。哈哈,耶:)但是你也有嵌套的块;不管怎样,很酷的把戏对不起..错误的方法是:将所有代码在For…Next
中包装成Do…循环,而False
则使用Exit Do
跳过到下一个迭代。