2つのループを使用する必要があります。「サブモジュール」が定義された既知の範囲(「B3」、「B18」)で何回繰り返されたかを数えるのが簡単です。難しい部分は、それぞれの「サブモジュール」ごとに「ポジション」が何度繰り返されているのかを数えようとするときに来ます。これは、各サブモデルの要素の量が異なるため、特別なループの範囲を「submodul」内の特定の要素(= Position)が何回繰り返されるかを計算します。私は正しい形式でそれを書くために管理することができる場合どのようにコードのサイズを変更するループ内の範囲を定義するために書くことができますか?
positionrepetition = Application.CountIf(Worksheets("Sheet2").range("cells(3 + x + y - 1, 3)", "cells(3 + x + y - 1 + submodulrepetition,3"), position)
は、私はそれが動作すると信じて:私は助けを必要と
特定の部分は次のようです。問題は、通常、範囲が固定されているかわかっているときにのみ範囲関数を使用することです。計算する必要はありません。私は通常Range( "A1"、 "F10")のように書く。
これは固定範囲なので、Range( "A1"、 "F10 ")引数(" Cells(1,1) "、" Cells(10,6) ")でrange関数を使うことができました。私が間違っているなら、私を修正してください。
ここにループの残りのコードがあります。
For x = 0 To numberofparts
If Cells(3 + x, 18) = "1" Then
submodul = Cells(3 + x, 2).Value
submodulrepetition = Application.CountIf(Worksheets("Sheet2").range("B3", "B18"), submodul)
For y = 1 To submodulrepetition
position = Cells(3 + x + y - 1, 3).Value
positionrepetition = Application.CountIf(Worksheets("Sheet2").range("cells(3 + x + y - 1, 3)", "cells(3 + x + y - 1 + submodulrepetition,3"), position)
Next
Else
End If
x = x + submodulrepetition - 1
Next
もう少し説明することは、すべてのデータは、Excelシートから収集されます。
- すべての情報は -The「サブモジュール」は、列Bにあり、それらは数値に配置されているExcelシートから収集されます注文。すべてのサブモジュールは、このコラムでそれが持つ多くの要素を繰り返す。 - 「位置」(サブモジュールの要素)はC列にあり、同じ列でも、他の「サブモデル」であっても繰り返すことができます。
すべてのご協力をいただき、誠にありがとうございます。
アレハンドロ・ファリーナ
は、それが働いた –