0

立ち往生しています。少し助けてください。列 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番目のセルを取得することです細胞。

4

1 に答える 1