- ベストアンサー
excel マクロ 変換
すいません教えてください 1)Sheet3にマスターがありA1=日 B1=001(勤務コード)があります。 2)Sheet1のA1=日 Sheet1のコマンドボタンをクリックするとSheet2のA1=001と転写表示させたいのです 3)Sheet3のマスターには、夜=002 早出=003などSheet3にはA55まであります。 どのような記述が良いのか教えてください
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
デタラメに書き換えても当然動きません。 教わればあとはご自分で出来るつもりだったのかもしれませんが、状況説明を手抜きして「A1」とか言ってるので、こういった二度手間になります。次回は最初から丁寧に、あなたの本当をご相談に書くようにしてみたらどうでしょう。 >一括で変換させたい ではそのようにします。 sub macro2() with worksheets("提出").range("A10:AH44") .formula ="=VLOOKUP(入力!A10,勤務マスタ!$B:$E,4,FALSE)" .value = .value end with end sub 今回もまだ、どこのシートの何列に何を記入してあってどれを持ってきたいのかとか情報がありませんので、このマクロでは正しく作動しません。ご自分できちんと修正してください。 こちらのマクロは見つからない(間違った)データが記入してあったりしたとき、イチイチ警告を出していてはきりがないので、エラー値を計算します。 #参考 >関数だと消す人もいるので シートを保護しておくだけです。
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
わざわざマクロとか使わずに、シート2のA1に =IF(Sheet1!A1="","",VLOOKUP(Sheet1!A1,Sheet3!A1:B55,2,FALSE)) といった具合に仕込んでおくだけで十分に見えますが。 まぁ敢えてマクロを使いたいなら private sub Commandbutton1_click() dim h as range set h = worksheets("Sheet3").range("A1:A55").find(what:=worksheets("sheet1").range("A1").value, lookin:=xlvalues, lookat:=xlwhole) if h is nothing then msgbox "NOT FOUND" exit sub end if h.offset(0, 1).copy destination:=worksheets("Sheet2").range("A1") end sub とかなんとか。
お礼
すいません!入力シートにはA10:AH44があり一括で変換させたいです。 例) 入力Sheet 提出Sheet 1 2 3 1 2 3 A日 日 夜 →A 001 001 002 B B C C わからずらい質問ですいません!
補足
さっそくの回答ありがとうございます。実際にやってみましたがうまくいきません!勤務マスタ=Sheet3、入力=Sheet1、提出=Sheet2です。 Set h = Worksheets("勤務マスタ").Range("B5:B82").Find(what:=Worksheets("入力").Range("A10:AH44").Value, LookIn:=xlValues, lookat:=xlWhole) If h Is Nothing Then MsgBox "NOT FOUND" Exit Sub End If h.Offset(0, 3).Copy Destination:=Worksheets("提出").Range("A10:AH44") Sheets("提出").Select Range("B1").Select Not FOUNDになってしまいます! 関数だと消す人もいるので・・・すいません教えてください
お礼
本当に何度もすいませんでした。 正確に質問します。