立ち往生しています。少し助けてください。列 D12、d14、d16 .... から d42 までの数量を取得しようとしています。この数量に値を掛けます。バリューシートはこんな感じ。
バリューシート
A B C
ItemName Quality Confort
1 Chair 2 1
2 Bed 0 3
3 Table 1 1
数量シート
A B C D
ItemName QTYColumn
12 .. Table 2
13
14 .. Chair 5
15
16 .. Bed 6
トータルシート
A B
Quality 12 (2*1 + 5*2 + 6*0 )
Confort 25 (2*1 + 5*1 + 6*3 )
私はかなり難しい部分をやり遂げたと確信しています。必要なすべてのシートから数量を確認して取得できます。また、アイテムの名前と統計名を渡す関数を実行すると、必要な結果が返されます。
だから、私は動作しないコードATMのこの部分を手に入れました、そしてそれは私を狂わせます。
For Counter = 12 To 42 Step 2
For Each qColumn In QTYColumn
Set QTY = Range(qColumn & Counter)
Dim ItemName As Range
ItemName= QTY.Offset(-2, 0).Select
total = total + (QTY * GetValue(ItemName, "Confort"))
Next qColumn
Next Counter
私の問題は ItemName 変数にあります。常に空で、デバッガーでそれに到達するとすぐに、関数が停止して閉じます。誰でも理由について何か考えがありますか? シートによって異なる可能性があるため、列アドレスではなくオフセット-2に基づいて取得することが重要です。それを見つける唯一の「確実な」方法は、数量の左側にある2番目のセルを取得することです細胞。