|
早速の回答ありがとうございました。
私の質問の方法がわかりくかったので例を出しながら書いてみます。
現在作っているのは出勤表です。
シート1では前日の勤務内容・売上金額等を担当者毎に入力します。
シート2以降では各担当者の当該月の出勤状況が見られるようにします。
シート1に入力された内容はマクロボタンを押すと、シート2の該当箇所に
転記されるようなVBAを組みたいと思っています。
(シート1例)
日付 勤務時間 現場 売上
担当者名:川田 1/1 8時〜5時 町田市 150,000 ボタン
担当者名:田中 1/1 8時〜5時 日野市 100,000 ボタン
*出勤表入力は毎日行います。その為日付は毎日変わります。
(シート2例)
日付 勤務時間 現場 売上
1/1
1/2
1/3
1/4
.
.
.
.
*予め、日付だけは入力しておきます。
以上のようなシートを用意しておきます。
シート1の内容を各担当者のシートに転記するのは簡単ですが、
問題はどの列に転記するかということになります。
そこで基準となるのが日付です。シート1に入力された日付を自動で判別して
シート2の該当する日付の横に内容を転記するVBAを作成したいのです。
たとえば上記の例だと、シート1の入力フォームには1/1となっているので、
シート2の1/1の横に転記され、翌日1/2に入力すればシート2の1/2の横に
転記されるようなものです。
以下に作成途中のコードを記載します。
sub test35 ()
dim rng as range ←勤務時間・現場・売上の内容を変数にします。
dim dat as date ←シート1の日付を変数にします。
dim rng2 as range ←シート2の日付列を変数にします。
set rng = range(勤務時間〜売上のセル範囲)
set dat = range(シート1の日付のセル)
set rng2 = Range("シート2日付列").Find(What:=dat)
rng.copy Destination:=worksheet("川田").rng2.offset(0,-1)
←
勤務時間以下の内容をコピーして、川田シートのfindメソッドで見つかったセルの
一つ左のセルに貼り付け
…でうまくいきませんでした。
そもそもの考え方が間違っているのでしょうか?
長くなってしまい申し訳ございません。
もしお助けいただけるのであれは、よろしくお願いいたします!
|
|