2017-02-20 10 views
1

私はスプレッドシートを使用しています。以下の小さなサンプルは、実際の行数が100を超えています。IFとVLOOKUPのワークシート変更マクロ

Timesheet

私は週数がB3に変更されたときのためのワークシートの変更マクロを持っています。

If Target.Address = Range("$B$3").Address Then 

    Range("C5:I7").Formula = "=VLOOKUP($A5,'[NightRota.xlsx]" & Target.Value & "'!$A:$I,C$1,0)" 
    Range("C8:I11").Formula = "=VLOOKUP($A8,'[DayRota.xlsx]" & Target.Value & "'!$A:$J,C$2,0)" 

End If 
End Sub 

私の問題は、従業員が残したり、参加して、私はそれらを追加または削除として私は絶えず式の範囲を変更する必要があることです。

私が期待しているのは、誰かがB欄、曜日または夜の値に応じてIF文を数式に追加するのを手助けできるということです。現時点では、正しい数式が正しいセルに収まるように、列Bがフィルタリングされていることを確認する必要があります。

ありがとうございます。私はいくつかの成功を収めてきた

私は2番目の式は、最初の式が上書きされたコードを実行すると、これは私が今持っているもの

If Target.Address = Range("$C$3").Address Then 

    Range("D5:J91").Formula = "=IF($C5=""Night"",VLOOKUP($A5,'[NightRota.xlsx]" & Target.Value & "'!$A:$I,D$1,0))" 
    Range("D5:J91").Formula = "=IF($C5=""Days"",VLOOKUP($A5,'[DayRota.xlsx]" & Target.Value & "'!$A:$J,D$2,0))" 

End If 

End Sub 

です残念ながら、誰も私を助けることができますか?セル参照は最初のコードとは異なります。これは、写真に投稿されたサンプルだけでなく、フルスプレッドシートを使用しているためです。

+1

最初に自分自身に亀裂があり、助けを求めるのが良いです。 Excelの数式ヘルプを参照してください。あなたがVBAを使っているなら、あなたは大丈夫だと思う。 – SJR

+0

私はシートに= IF(C5 = "Night"、VLOOKUP($ A5、 '[NightRota.xlsx] 23!$ A:$ I、C $ 1,0)などの式を入れることができます。用紙番号「23」は週ごとに変化する。私はちょうど私がデバッグエラーを取得するようにワークシートの変更にこの数式を配置する方法を頭の中で得ることができません。私は、元の投稿を編集しました。私は検索のために間違ったセルを持っていました。 – Sherbetdab

答えて

1

私はそれを解決することができました。

入力のおかげで、毎日何か新しいことが分かります。

If Target.Address = Range("$C$3").Address Then 

    Range("D5:J91").Formula = "=IF($C5=""Night"",VLOOKUP($A5,'[NightRota.xlsx]" & Target.Value & "'!$A:$I,D$1,0),VLOOKUP($A5,'[DayRota.xlsx]" & Target.Value & "'!$A:$J,D$2,0))" 


End If 

End Sub