テーブルのグループ列に値1または2が含まれています。私は値を1とした行をSheet2にコピーし、値が2の行をボタンを使ってsheet3にコピーしたいとします。私は、次のしているコーディングに新しいですので、セルが空白のままにしないか、値がどちらも1本のも2特定の列の値に基づいて行を個別のシートにコピーします。
ロールであれば何メートル幅グループ
ている場合にも、エラーメッセージが表示されるはずですセルが空の場合、このアプローチ
チェックし、セルが含まれている場合は、エラーメッセージに
チェックを生成1または2と生成エラーメッセージ
- 以外の値は、最終的にはSheet2の1などの値を持つ行をコピーして、私はこれが効果的な方法であることで助けを必要とシート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
End Subの
これはVBAよりもデータ検証や数式に適した問題のようですが、これまでに試したコードを教えてください。 – jsheeran
私はコードを添付しています。物事をより明確にすることを願っています。 – jhonty