投稿/コメントを表示します。

小川様

お世話になります。
フォローアップ追加分の最後に記入済みデータを手元資料に統合という課題の
最後に追加データもとってくるというのがありますが

小川さんの模範解答には
If Workbooks(filename).Worksheets("歳入").Range("A" & moto).Value <> "" Then

というコードがありますで、そのコードがなくともできるのではないかとおもい
以下のコードを作成しましたが、追記データがとびとびになってうまくいきませんでした。
原因を探ろうとしましたがお手上げです。
ご指導よろしくお願いいたします。
Sub hukusyuu() '
    
    Dim foldername
    Dim filename
    Dim tuikanyu
    Dim tuikasyu
    tuikanyu = 52
    tuikasyu = 42
    
    Dim gyo
    For gyo = 2 To 10
    
    foldername = Workbooks("全部1つ.xls").Worksheets("部署情報").Range("F" & gyo).Value
    filename = Workbooks("全部1つ.xls").Worksheets("部署情報").Range("G" & gyo).Value
    
        Workbooks.Open filename:="D:\h引越し\s仕事関係\VBA\f基礎追加フォローアップ解凍ファイル\配布物 最後の課題用に改変\01-課題一式\" & foldername & "\" & filename
            
        Dim moto
        Dim saki
        Dim mituketa
        
        
        For moto = 2 To 51 '←ここと(moto)
            mituketa = False
            For saki = 2 To 51 '←ここ(saki)が逆ではだめ。つまりフラグはあくまでmotoを見に行ったとき、ない場合の処理なので
                If Workbooks(filename).Worksheets("歳入").Range("A" & moto).Value = Workbooks("全部1つ.xls").Worksheets("歳入").Range("A" & saki).Value Then
                    Workbooks("全部1つ.xls").Worksheets("歳入").Range("E" & saki).Value = Workbooks(filename).Worksheets("歳入").Range("E" & moto).Value
                    mituketa = True
                    Exit For
                End If
            Next
            If mituketa = False Then
                Workbooks("全部1つ.xls").Worksheets("歳入").Range("A" & tuikanyu).Value = Workbooks(filename).Worksheets("歳入").Range("A" & moto).Value
                Workbooks("全部1つ.xls").Worksheets("歳入").Range("B" & tuikanyu).Value = Workbooks(filename).Worksheets("歳入").Range("B" & moto).Value
                Workbooks("全部1つ.xls").Worksheets("歳入").Range("C" & tuikanyu).Value = Workbooks(filename).Worksheets("歳入").Range("C" & moto).Value
                Workbooks("全部1つ.xls").Worksheets("歳入").Range("D" & tuikanyu).Value = Workbooks(filename).Worksheets("歳入").Range("D" & moto).Value
                Workbooks("全部1つ.xls").Worksheets("歳入").Range("E" & tuikanyu).Value = Workbooks(filename).Worksheets("歳入").Range("E" & moto).Value
                tuikanyu = tuikanyu + 1
            End If
        Next
        
        
        For moto = 2 To 41
            mituketa = False
            For saki = 2 To 41
                If Workbooks(filename).Worksheets("歳出").Range("A" & moto).Value = Workbooks("全部1つ.xls").Worksheets("歳出").Range("A" & saki).Value Then
                    Workbooks("全部1つ.xls").Worksheets("歳出").Range("E" & saki).Value = Workbooks(filename).Worksheets("歳出").Range("E" & moto).Value
                    mituketa = True
                    Exit For
                End If
            Next
            If mituketa = False Then
                Workbooks("全部1つ.xls").Worksheets("歳出").Range("A" & tuikasyu).Value = Workbooks(filename).Worksheets("歳出").Range("A" & moto).Value
                Workbooks("全部1つ.xls").Worksheets("歳出").Range("B" & tuikasyu).Value = Workbooks(filename).Worksheets("歳出").Range("B" & moto).Value
                Workbooks("全部1つ.xls").Worksheets("歳出").Range("C" & tuikasyu).Value = Workbooks(filename).Worksheets("歳出").Range("C" & moto).Value
                Workbooks("全部1つ.xls").Worksheets("歳出").Range("D" & tuikasyu).Value = Workbooks(filename).Worksheets("歳出").Range("D" & moto).Value
                Workbooks("全部1つ.xls").Worksheets("歳出").Range("E" & tuikasyu).Value = Workbooks(filename).Worksheets("歳出").Range("E" & moto).Value
                tuikasyu = tuikasyu + 1
            End If
        Next
        
        Workbooks(filename).Close
    Next
    
End Sub

2016/12/28 14:16