Столбец группы в моей таблице содержит значение 1 или 2. Я хочу скопировать строку со значением как 1 в Sheet2 и строки со значениями от 2 до 3 с помощью кнопки. Кроме того, он должен показать сообщение об ошибке, если клетки остаются пустыми или если объект не является ни 1, ни 2.Копирование строк в отдельные листы на основе значения в определенном столбце
Ролла нет ширина метра группы
Так как я новичок в кодировании я имею следующий этот подход
проверить, если ячейка пуста и генерирует сообщение об ошибке
чек, если ячейка содержит значение, отличное от 1 или 2 и генерировать сообщение об ошибке
- наконец скопировать строку со значениями от 1 до Лист2 и отдыха все в Sheet3
Мне нужна помощь в этом, является эффективным способом. Как я должен сохранить размер файла вниз
enter code here
Private Sub CommandButton2_Click()
Dim i As Integer
p = Sheet1.Range("l1").Value 'no. of filled cells in the range
Application.DisplayAlerts = False
Sheet1.Activate
''checking if the range is empty
For i = 29 To p + 29
If Sheet1.Range("l" & i).Value = "" Then
MsgBox ("PLEASE ENTER THE SHRINKAGE GROUP FOR CELL NO. l" & i)
Range("L" & i).Activate
End
End If
Next i
'' checking if the range contains values other than 1 or 2
For i = 29 To p + 29
If Sheet1.Range("l" & i).Value <> 1 And Sheet1.Range("l" & i).Value <> 2 Then
MsgBox ("SHADE GROUP DOES NOT EXIST FOR CELL NO. l" & i)
Range("L" & i).Activate
End
End If
Next i
' sort based on the group
Range("a29:L300").Sort _
Key1:=Range("l29"), Header:=xlYes
'count the number of rolls in group 1
Dim x, y As Long
Dim a, b As Integer
x = Range("L" & Rows.Count).End(xlUp).Row
If x < 29 Then x = 29
a = Application.WorksheetFunction.CountIf(Range("L12:L" & x), 1) + 28
Range("M1").Value = a
' count the number of rolls in group 2
y = Range("L" & Rows.Count).End(xlUp).Row
If y < 29 Then y = 29
b = Application.WorksheetFunction.CountIf(Range("L12:L" & x), 2)
Range("n1").Value = b
'' copying groupwise to different sheet
Sheet1.Range("a29", "l" & a).Copy
Sheet2.Range("a5").PasteSpecial xlPasteAll
Sheet2.Range("a5").PasteSpecial xlPasteValuesAndNumberFormats
'' copying group 2
Sheet1.Range("a" & a + 1, "l" & a + b).Copy
Sheet5.Range("a5").PasteSpecial xlPasteAll
Sheet5.Range("a5").PasteSpecial xlPasteValuesAndNumberFormats
End Sub
Это звучит как проблема, которая лучше подходит для проверки данных и формул, чем VBA, но не могли бы вы показать нам код, который вы пробовали до сих пор? – jsheeran
Я приложил код. я надеюсь, что это сделает вещи более ясными. – jhonty