- 締切済み
VBAについて
いつもお世話になっています マクロ・VBA超初心者です。 質問させてください。 現在シート1の完売のセルの欄に○が入っていれば日付をみてシート2の同じ日付の隣のセルに○を入力しようと思っているのですが、シート2の日付を検索はしているんですが入力がいきません Sheet1 ↓セルA1 ↓セルB1 5月26日 26 B1のセルはDAY(A1)にて出してます 完売 A氏 ○ Sheet2 ↓A列 ↓B列 5月 1日 ・ ・ ・ 26日 ○ ←シート1の所に○が付いているとシート1セルB1と同じ 27日 日付の隣のセルに○を入力 28日 VBA Sub test() Sheets("Sheet2").Select Range("A1").Select Do Until ActiveCell = "" ActiveCell.Offset(1, 0).Activate If ActiveCell.Value = Worksheets("Sheet1").Range("B2") Then ActiveCell.Offset(0, 1).Activate If ActiveCell.Value <> "○" Then ActiveCell.Valu = "○" ActiveCell.Offset(0, -1).Activate Else ActiveCell.Offset(0, -1).Activate End If Else End If Loop Sheets("Sheet2").Select Range("A1").Select End Sub どこが間違っているかわからない状態です。 分かりにくい説明ではあるんですが教えてください お願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
この質問の説明では、Sheet1の情況がよくわからない。 まだこの説明では、VBAを組めるレベルではないと思う。こちらの表現訓練が必要と思う。 Sheet1で 例をA氏だけでなく、複数人で、B氏、C氏・・の行もSheet1のA,B列にあるのか。 A氏市だけのデータではないだろう。 ーー それと処理の単位という観念が、初心者のためか、しっかり捕らえてない。これを見極めて質問にはっきり書くこと。 処理のタイミング (1)A氏の行にというか、B列に丸が入ったとき、即時にSheet2の26日の行に○をつけるのか (2)データが1日なり分を、入力し終わってから、Sheet2の○の該当日に○をつけるのか。 A氏が完売という、A氏iという要素はSheet2ではどうなったのか。埋没しても良いのか。 ーー A氏、B氏が両方とも5/26に完売は無いのか。 26日分が1シートだとすると、27,28日分はどうなっている? 別シートになっていると、初心者には無理な情況ということに鳴る。 == むしろ自分の作ったコードなどは注記して、やりたいことを手作業でやるときの手順を箇条書きして、判らない部分のコードを教えてもらい、真似するより仕方が無いだろう。この質問のような我流のコードをエラー訂正してもらっても、発展が無いと思う。
- kybo
- ベストアンサー率53% (349/647)
>If ActiveCell.Value = Worksheets("Sheet1").Range("B2") Then この部分は、日付(例では26)が入力されているのが、B1のセルなので、 Range("B2") ではなく、Range("B1") >ActiveCell.Valu = "○" スペルが間違っている。「ActiveCell.Value = "○"」とする あと、シート1のB1のセルの日付は数値なので、シート2の日付も、数値として入力してあるのでしょうか? 「26日」と文字列で入力しているのであれば、「26」という数値にしておき、セルの書式設定→表示形式→ユーザー定義で、「0日」とでもします。