私は最初に最小のものを識別しなければならないコードを書いています。次に小さいものを2番目に小さくして、それらの行番号を取得します(ここでは行番号を別の列に保存します1つの列(ここでは列2)から別の列(ここでは列7)に、行番号の順に内容をコピーします。つまり、最初に小さい順、次に2番目に小さい順にコピーします。私のコードの論理的なエラー
毎に43行
始まる172のそのようなデータセットがへのデータ(これは新しい列(各データセットのカラム7の45行)の数値の和まで続けるありコピーされている)が指定された数(すべてのデータセットの列1の45行、すなわちA45、A88)
EDIT:上記のG45はA45と比較されます。シート自体
Dim m As Range, cl As Range, k As Double, b As Double, lIndex As Double, a As Double, multi As Double, l As Integer, x As Double
Set m = ActiveSheet.Range("E3:E40")
multi = 2 'To move to starting position of the data set
For i = 1 To 172
b = 45 + 43 * (i - 1)
For k = 1 To 38
a = Application.Small(m, k) 'To find the kth smallest number
l = 1
For j = 1 To 38 'To store the matching row numbers (Multiple instances) in column 50
Cells(j, 50).Value = 0 'Initializing to column no. 50 to 0
If Cells(j + multi, 5).Value = a Then 'Checking for match
Cells(l, 50).Value = j + multi 'Storing Row coordinates in column no. 50
l = l + 1
End If
Next j
'==============THE FOLLOWING IS THE AREA WHERE THE PROBLEM MIGHT BE======================
For o = 1 To l - 1 'To Copy the values based on the criteria
x = Cells(o, 50).Value
If Cells(b, 7).Value <= Cells(b, 1).Value Then '"CRITERIA" Checking whether sum of the column is less than or equal to sum of first column of set
Cells(x, 7).Value = Cells(x, 2).Value
End If
Next o
Next k
Set m = m.Offset(43)
multi = multi + 43
Next i
問題は、コピーをコピーする条件(合計値が一定値未満である必要があります)が機能していないことです。このコラムへコラム2からすべてのデータ7.
は、誰かがその理由であるかもしれないものを見つけるのに役立つことができ、実際にコピー...
注:私はチェックして、店舗の行番号をコードすることが確認さ列50で正常に動作しています。だから問題は、変数 "o"のforループであるコードの下半分にある可能性があります。
あなたはDouble'のdeclerationとして 'Oを欠落していませんか? –
コンパイル時にエラーを出さないので、ループ実行中に暗黙のうちに実行されると仮定します... –
私とjのようなものがあります。 –