Это очень простой вопрос, и я не знаю, в чем проблема.
Я хочу, чтобы VBA прошел через все строки на листе и выполнил действие для строки X, если ячейка в строке X, столбец Y содержит значение, отличное от «Все в порядке» (или другим способом - если содержит определенную ячейку). Требуется действие "). Это должно быть с циклом (без проблем с циклом).
Одна важная информация состоит в том, что «Все в порядке» или «Необходимое действие» не являются значениями как таковыми - они запускаются по формуле «= IF (ИЛИ (B2 <>» «, C2 <>» «, D2 <>» ")," Требуется действие "," Все в порядке ")".
Также кое-что, что я заметил, это то, что когда я медленно запускаю макрос с точкой останова переключения, он работает правильно. Однако, если я запускаю это с кнопкой запуска без каких-либо точек разрыва, он выбрасывает все строки (независимо от того, «Все ли в порядке» или «Требуется действие»). Есть идеи почему?
Sub SplitToWorksheets()
Dim ColHead As String
Dim ColHeadCell As Range
Dim iCol As Integer
Dim iRow As Long 'row index on Fan Data sheet
Dim Lrow As Integer 'row index on individual destination sheet
Dim Dsheet As Worksheet 'destination worksheet
Dim fsheet As Worksheet 'fan data worksheet (assumed active)
Dim status As String
Dim ws As Worksheet
OptimizeVBA True
Set fsheet = Worksheets("CM | Impact")
iCol = 1
status = "Action Needed"
i = fsheet.Range("A1").CurrentRegion.Rows.Count
For iRow = 2 To i
If fsheet.Cells(iRow, 5) = status Then
If Not SheetExists(CStr(fsheet.Cells(iRow, iCol).Value)) Then
Set Dsheet = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Dsheet.Name = CStr(fsheet.Cells(iRow, iCol).Value)
fsheet.Rows(1).Copy Destination:=Dsheet.Rows(1)
Else
Set Dsheet = Worksheets(CStr(fsheet.Cells(iRow, iCol).Value))
End If
Lrow = Dsheet.Cells(10000, iCol).End(xlUp).Row
fsheet.Rows(iRow).Copy Destination:=Dsheet.Rows(Lrow + 1)
Else
End If
Next iRow
Большое спасибо за помощь!
РЕДАКТИРОВАТЬ: Это хорошо работает, когда я вставил формулы (тот, который вызывает «Все ОК» или «Требуется действие» в качестве значений, но я хочу сохранить формулы при выполнении кода ...