これは、ここにある以前に尋ねられ回答された質問への直接の参照です:ワークブックの他の Excel シートのデータを自動的に更新する
このスクリプトは問題なく動作しますが、何らかの理由でリスト全体をプルしません。以下は、私のソリューションで機能するように編集したコードです。この最初のコードブロックは使用していません:
_
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Call UpdateFromMaster
End Sub
これは私が標準モジュールで使用しているものです:
_
Sub UpdateFromMaster()
Call ResetDestinationSheets
Dim LR As Long, i As Long
LR = Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To LR
If Range("Q" & i).Value = "Todd" Then Rows(i).Copy Destination:=Sheets("Todd").Range("A" & Rows.Count).End(xlUp).Offset(1)
If Range("Q" & i).Value = "Bob" Then Rows(i).Copy Destination:=Sheets("Bob").Range("A" & Rows.Count).End(xlUp).Offset(1)
If Range("Q" & i).Value = "Trevor" Then Rows(i).Copy Destination:=Sheets("Trevor").Range("A" & Rows.Count).End(xlUp).Offset(1)
Next i
End Sub
_
Sub ResetDestinationSheets()
Call ResetThisSheet("Todd")
Call ResetThisSheet("Bob")
Call ResetThisSheet("Trevor")
End Sub
_
Sub ResetThisSheet(ByRef SheetToClear As String)
Sheets(SheetToClear).Range("A2:S" & Rows.Count).Clear
End Sub
_
さて、UpdateFromMaster マクロを実行した後の私のマスター リストでは、マクロは正常に動作しているようです。各ワークシート (Todd、Bob、Trevor) でリードの数を確認するまで。Bob は 39、Todd は 243、Trevor は 62 になるはずです。マクロを実行すると、Todd のワークシートに 105、Bob のワークシートに 39 (正しい)、Trevor のワークシートに 51 が送信されるだけです。マスターを含むすべてのワークシートに見出し行があります。
これをトラブルシューティングする際に、すべてのワークシートのすべての書式設定をクリアし、「Q」列にすべてのスペルが正しいことを再確認しました。
私が間違っていることについてのアイデアはありますか?