Я використовую наступний код, наведений нижче. Я працюю добре, але це стирає формулу в одній із моїх клітинок. Як змінити цей код, щоб пропустити одну клітинку на моєму аркуші?
Sub MoveRowBasedOnCellValue()
'Оновлено Extendoffice 2017/11/10
Dim xRg As Range
Dim xCell As Range
Dim i As Long
Dim J As Long
Dim K As Long
i = Worksheets("Data").UsedRange.Rows.count
J = Worksheets("Completed").UsedRange.Rows.count
Якщо J = 1, то
Якщо Application.WorksheetFunction.CountA(Worksheets("Completed").UsedRange) = 0, тоді J = 0
End If
Установіть xRg = Worksheets("Data").Range("A1:A" & i)
On Error Resume Next
Application.ScreenUpdating = Невірний
Для K = 1 До xRg.ліч
Якщо CStr(xRg(K).Value) = "Завершено", Тоді
xRg(K).EntireRow.Copy Destination:=Worksheets("Completed").Range("A" & J + 1)
xRg(K).EntireRow.ClearContents
J = J + 1
End If
МАЙБУТНІ
Application.ScreenUpdating = True
Стовпці("A:A").Виберіть
ActiveWorkbook.Worksheets("Data").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Data").Sort.SortFields.Add2 Key:=Range("A3:A16") _
, SortOn:=xlSortOnValues, Порядок:=xlAscending, DataOption:=xlSortNormal
За допомогою ActiveWorkbook.Worksheets("Data").Sort
.SetRange Range("A2:Q16")
.Заголовок = xlYes
.MatchCase = помилково
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Застосувати
Application.Goto Reference:=Worksheets("Data").Range("A3")
Кінець з
Sub MoveRowBasedOnCellValue()
'Оновлено Extendoffice 2017/11/10
Dim xRg As Range
Dim xCell As Range
Dim i As Long
Dim J As Long
Dim K As Long
i = Worksheets("Data").UsedRange.Rows.count
J = Worksheets("Completed").UsedRange.Rows.count
Якщо J = 1, то
Якщо Application.WorksheetFunction.CountA(Worksheets("Completed").UsedRange) = 0, тоді J = 0
End If
Установіть xRg = Worksheets("Data").Range("A1:A" & i)
On Error Resume Next
Application.ScreenUpdating = Невірний
Для K = 1 До xRg.ліч
Якщо CStr(xRg(K).Value) = "Завершено", Тоді
xRg(K).EntireRow.Copy Destination:=Worksheets("Completed").Range("A" & J + 1)
xRg(K).EntireRow.ClearContents
J = J + 1
End If
МАЙБУТНІ
Application.ScreenUpdating = True
Стовпці("A:A").Виберіть
ActiveWorkbook.Worksheets("Data").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Data").Sort.SortFields.Add2 Key:=Range("A3:A16") _
, SortOn:=xlSortOnValues, Порядок:=xlAscending, DataOption:=xlSortNormal
За допомогою ActiveWorkbook.Worksheets("Data").Sort
.SetRange Range("A2:Q16")
.Заголовок = xlYes
.MatchCase = помилково
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Застосувати
Application.Goto Reference:=Worksheets("Data").Range("A3")
Кінець з