私が持っているのは、データの形式が比較的同じである100を超えるタブを持つスプレッドシートですが、一部のシートは他のシートよりも行数が多いまたは少ないです。すべての従業員番号と名前を含む EMP_NUMという名前のシートがあります。すべての関連データをマスターシートにコピーしたいマスター シートがあります。シートEMP_NUMに記載されている従業員番号は、100 以上のシートの名前と一致します。最後に、マスターシートの各行の最初のセルを従業員番号にし、行の残りのセルを他のすべてのシートから収集したデータにします。
コピーする必要があるemployee#シートのデータは、A4 から始まり、TX で終わります。ここで、X は、列 A でまだ値が残っている最大の行番号に等しくなります。
EMP_NUMのデータを使用してプロシージャで呼び出され、データが一致するためデータをコピーするための正しいシートを見つけるだけでなく、行の最初のセルとしても使用することを考えていました。
完了したら、数式を追加してデータを計算できます。Excel で VB を少しだけ試してから 6 年以上経ちましたが、どうすればよいかわかりません。お世話になりました!何かをクリアする必要がある場合はお知らせください。
**追加した**
最初のステップは、データをコピーする最初のシートを見つけることだと思います。最初のシートを見つけるには、関数はEMP_NUMシートに移動し、最初の番号が何であるかを確認する必要があります。その番号は、必要なシートの名前に正確に関連しています。それはintEmpNumにすることができます
次に、対応するシートで、4 行目以降にデータがある行数を計算します。これらの行は、コピーする範囲になります。この範囲をシートマスターの最初の使用可能な行にコピーし、列 B から開始して、列 A を空白のままにします。列 A は、列 B にデータがあるが列 A にはないすべての行のintEmpNumです。
次に、EMP_NUM で次の従業員番号を見つけ、シートEmp_NUMの列 A に従業員番号がなくなるまでプロセスを繰り返します。
これは私がこれまでに持っているものです -
Sub Button1_Click()
Dim intEmpNum As Integer 'employee number
Dim strEmpCell As String 'row that employee number is in
strEmpCell = 1
Do Until Sheets("EMP_NUM").Range("A" + strEmpCell).Value = 0
intEmpNum = Sheets("EMP_NUM").Range("A" + strEmpCell).Value
strEmpCell = strEmpCell + 1
Loop
MsgBox ("The value was not found!")
End Sub