Vba excel:循环通过跳过列的值

Vba excel:循环通过跳过列的值,vba,excel,Vba,Excel,当循环中的一行找到某个值时,有没有办法跳过它 例如,我有一个循环,通过一列复制日期并粘贴其值,然后使用以下代码在另一个工作表中再添加一天: Sub Apoios() Dim i As Long Dim j As Long Dim lastrow As Long Dim ws1 As Worksheet Dim ws2 As Worksheet Dim ws3 As Worksheet Set ws1 = Sheets("Plan3") Set ws2 = Sheets("BASE_TOTAL

当循环中的一行找到某个值时,有没有办法跳过它

例如,我有一个循环,通过一列复制日期并粘贴其值,然后使用以下代码在另一个工作表中再添加一天:

Sub Apoios()

Dim i As Long
Dim j As Long
Dim lastrow As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ws3 As Worksheet

Set ws1 = Sheets("Plan3")
Set ws2 = Sheets("BASE_TOTAL")
Set ws3 = Sheets("APOIOS")

lastrow = ws2.Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To lastrow
    For j = 1 To 11
        Select Case True
            Case IsEmpty(ws2.Cells(i, j)):
                ws3.Cells(i, j) = ""

            Case Not IsEmpty(ws2.Cells(i, j)):
                If ws1.Cells(4, 3) <= ws2.Cells(i, 8) And ws2.Cells(i, 5).Value <> "APOIO" Then
                    ws3.Cells(i, 1).Value = ws2.Cells(i, 1)
                    ws3.Cells(i, 2).Value = ws2.Cells(i, 2)
                    ws3.Cells(i, 3).Value = ws2.Cells(i, 3)
                    ws3.Cells(i, 4).Value = ws2.Cells(i, 4)
                    ws3.Cells(i, 5).Value = "APOIO"
                    ws3.Cells(i, 6).Value = "-"
                    ws3.Cells(i, 7).Value = DateAdd("d", 1, ws2.Cells(i, 8).Value)
                    ws3.Cells(i, 8).Value = "-------------"
                    ws3.Cells(i, 9).Value = ws2.Cells(i, 9)
                    ws3.Cells(i, 10).Value = ws2.Cells(i, 10)
                    ws3.Cells(i, 11).Value = ws2.Cells(i, 11)
                End If

        End Select
    Next j
Next i

End Sub

有没有办法跳过上面有“TECNICO NAO ENCONTRADO”的单元格?

我想你是想更改这一行

如果你有类似的,可以分为:

If IsDate(ws2.Cells(i, 8).Value) Then ws3.Cells(i, 7).Value = DateAdd("d", 1, ws2.Cells(i, 8).Value)

您可以使用“on error goto line”跳过循环,可以吗?它就像一个符咒,我总是忘记
IsDate()
,谢谢。
ws3.Cells(i, 7).Value = DateAdd("d", 1, ws2.Cells(i, 8).Value)
If IsDate(ws2.Cells(i, 8).Value) Then ws3.Cells(i, 7).Value = DateAdd("d", 1, ws2.Cells(i, 8).Value)