次のコードでは、 "Master.Activate"の "Sheets.Count"は、マクロを実行する前にマウスのクリックで「ソース」ブックを手動で選択した場合にのみ機能します。そうでなければ、 "Master.Activate"はSheets.Count
を実行して最後のシートを選択するのではなく、 "Master"ワークブックの最初のワークシートをアクティブにします。基本的にマクロは "マスタ"ワークブックから実行する必要がありますが、 "ソース"ワークブックをクリックした後に実行する必要があります。私はそれを修正する方法に関する提案に感謝します。sheets.countとブックの有効化
Dim Source As Worksheet
Set Source = Workbooks("Source.xlsx").Worksheets("Settlements")
Dim Master As Worksheet
Set Master = Workbooks("Master Bonviva.xlsm").Worksheets(Sheets.Count)
Source.Activate
For Each cell In Source.Columns("M").Cells
If Not IsEmpty(cell) Then
Master.Activate
For Each cell2 In Master.Columns("J").Cells
If Not IsEmpty(cell2) Then
If cell = cell2 Then
cell2.Offset(0, 9).Value = cell.Offset(0, -2).Value
cell2.Offset(0, 8).Value = cell.Offset(0, -8).Value
End If
End If
Next cell2
End If
Next cell
End Sub
よろしく、 Bartek
'=" "'の代わりに 'IsEmpty'を使う以外に、これはあなたの最後の質問と同じコードです。コード**が** Source .ActivateとMaster.Activateは含まれていたが、そうではなかった。そして、あなたのコードの唯一の問題は、 'Activate'ステートメントを含めたかどうかにかかわらず、問題であった、不適切な' Sheets.Count'でしょうか、 。 – YowE3K