表中的組列包含值爲1或2。我想要複製行的值爲1到Sheet2和行的值爲2到Sheet3使用按鈕。還它應該顯示錯誤消息,如果細胞被留爲空白,或者如果值既不是1也不2.根據特定列中的值將行復制到單獨的工作表中
輥
由於我新的編碼我具有以下沒有米寬度基這種方法
檢查,如果該細胞是空的,並且如果該單元格包含產生錯誤消息
檢查比1或2,產生錯誤信息
- 其他值最後一行值1到Sheet2複製和休息都在工作表Sheet 3
我需要做的,這是一種有效的方式幫助。正如我必須保持文件的大小下來
enter code here
私人小組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
末次
這聽起來像是一個比VBA更適合數據驗證和公式的問題,但是你能告訴我們你到目前爲止嘗試過的代碼嗎? – jsheeran
我附上了代碼。我希望它能讓事情更清楚。 – jhonty