例として、初期値とクリティカルパスを示す最もクリーン300
な方法を理解しようとしています。これらの値は両方とも、シートへの入力によって変更できます。x
1.5
y
これらの値とともに、 と のリソースがa
ありb
ます。このシナリオでは、行内のセルをa
塗りつぶし、塗りつぶします。200
b
100
私が前x
にほのめかしたように、変更することy
ができます。そして、が満たされるだけです。y
2
a
150
b
150
y
1
a
300
現在、Ifステートメントを使用していますが、これは面倒であり、考えられるすべての結果をカバーするために無限のコードにつながる可能性があると感じており、より良い解決策が必要です.
これは、私が現在達成していることの単純な例です。
Private Sub Example()
Dim ActiveWB As Worksheet
Set ActiveWB = ActiveWorkbook.Sheets("Sheet1")
Dim cell As Range
Dim a, b, x, y As Double
x = ActiveWB.Range("A1").Value
y = ActiveWB.Range("A2").Value
a = x / y
b = x - a
For Each cell In ActiveWB.Range(Cells(3, 1), Cells(3, a))
If (cell.Column >= 0) And (cell.Column <> x) Then
If (y = 1) And (a > 0) Then
cell.Value = "a"
a = a - 1
ElseIf (y > 1) And (y < 2) And (a > 0) Then
cell.Value = "a"
a = a - 1
If (b > 0) Then
cell.Offset(1, 0).Value = "b"
b = b - 1
End If
ElseIf (y >= 2) And (y < 2.5) And (a > 0) Then
cell.Value = "a"
a = a - 1
If (b > 0) Then
cell.Offset(1, 0).Value = "b"
b = b - 1
End If
'..... and so on......
End If
End If
Next cell
End Sub
どんな提案でも大歓迎です。お時間をいただきありがとうございます。Y.