Я хочу скопировать данные с одного рабочего листа на другой рабочий лист, используя цикл (for
) и условие (if elseif else
).Условия:
- Если столбец E10 в wsCopy = пустой, тогда код будет зацикливаться ...
- с условием: Если столбец B10 в wsCopy = Значение в столбце Gs в wsDestI
- Затем скопируйте значение из столбца Gs wsDestI в столбец M wsDest
- Иначе, если значение в столбце B10 wsCopy = пусто
- Затем выполните условие.
- В противном случае код будет скопирован из wsCopy в wsDest
Но код в предложении Else вызывает ошибку:
Ошибка времени выполнения '1004'
Я пытался активировать рабочий лист, но все еще застрял.Может кто-нибудь объяснить, почему мой исходный код не работает?Это моя логика или неверный синтаксис?
For i = 1 To lCopyLastRow
If IsEmpty(wsCopy.Range("E" & 9 + i).Value) = True Then
For s = 4 To b
If (wsCopy.Range("B" & 9 + i).Value = wsDestI.Range("G" & s).Value) Then
wsDestI.Range("C" & s).copy wsDest.Range("M").End(xlUp).Offset(1, 0)
wsDestI.Range("G" & s).copy wsDest.Range("S").End(xlUp).Offset(1, 0)
wsDestI.Range("M" & s).copy wsDest.Range("P").End(xlUp).Offset(1, 0)
End If
Next s
ElseIf IsEmpty(wsCopy.Range("B" & 9 + i).Value) = True Then
wsCopy.Range("E" & i + 9).copy wsDest.Range("M").End(xlUp).Offset(1, 0)
wsCopy.Range("K" & 9 + i).copy wsDest.Range("P").End(xlUp).Offset(1, 0)
wsDest.Range("S").End(xlUp).Offset(1, 0) = "0"
Else:
wsCopy.Activate
wsDest.Activate
'this below line is error and I don't know why its error
wsCopy.Range("E" & 9 + i).copy wsDest.Range("M").End(xlUp).Offset(1, 0)
wsCopy.Range("B" & 9 + i).copy wsDest.Range("S").End(xlUp).Offset(1, 0)
wsCopy.Range("K" & 9 + i).copy wsDest.Range("P").End(xlUp).Offset(1, 0)
End If
Next i