- ベストアンサー
excel2007 マクロ 空白表示
Sheet上の範囲内のセルに空白があったら、そのセルには”0001”と表示させたい。 もし空白でなかったら処理はしない! という記述をしたいのですが上手くいきません 教えてください。 Dim sa As String sa = ThisWorkbook.Worksheets("提出").Range("B10:AF44") If sa = "" Then ThisWorkbook.Worksheets("提出").Range("B10:AF44") = "0001" Else End If
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>質問なのですが 今回のあなたのご質問は「提出シートの空白セルに0001を記入したい」です。 新しいご質問内容をだらだらと続けるのはやめて、次のご相談投稿として仕切り直して下さい。 >入力Sheetが空白な場合は 入力シートが空白か否か、前回のマクロで確認済みなので、しっかりと理解してください。そこに機能を追加します。 for each h in worksheets("入力").range("D10:AH44") if h <> "" then ’空白ではない ’既出マクロ else ’空白である worksheets("提出").range(h.offset(0, -2).address).clearcontents end if next
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
sub macro1() worksheets("提出").range("B10:AF44").numberformatlocal = "@" worksheets("提出").range("B10:AF44").specialcells(xlcelltypeblanks).value = "0001" end sub みたいな。
補足
質問なのですがページ移動のときに 入力Sheetが空白な場合は、提出Sheetに移動したときに反映させるように空白にしたいです。どのように記述を入れればよいのでしょうか? 理由としまして、提出Sheet上には前に入力していたものが残っています。 例) 入力Sheetが””→提出Sheet以前のがのこっているため”002”と表示されています。 したいこと) 入力Sheetが””→提出Sheetに移動したとき”002”から”001”と変化させミスを防ぎたいです。 Sub 提出_Click() '提出用のページへ移動 Dim h As Range Dim c As Range For Each h In Worksheets("入力").Range("D10:AH44") If h <> "" Then Set c = Worksheets("勤務マスタ").Range("B5:B83").Find(what:=h.Value, LookIn:=xlValues, lookat:=xlWhole) If Not c Is Nothing Then c.Offset(0, 3).Copy Destination:=Worksheets("提出").Range(h.Offset(0, -2).Address) End If End If Next '提出用ページに移動 Sheets("提出").Select Range("B1").Select End Sub
お礼
わかりました。ありがとうございました。
補足
本当にありがとうございました。