アプリ版:「スタンプのみでお礼する」機能のリリースについて

次の行列で伝票番号が同一のもので、空白セルがある場合に直前の数値、文字列をセットするマクロコードを教えて下さい。よろしくお願いします。

sample
A列 B列 C列 D列 E列
1 区分 日付 伝票番号 所属コード 所属名
2 あり 5/1 1000 1 あいう
3 あり 5/1 1000
4 あり 5/1 1000
5 なし 5/1 1001 2 かきく
6 なし 5/1 1001
7 なし 5/2 1002 3 さしす
8 なし 5/2 1002
9 なし 5/2 1002
10 なし 5 /2 1002

といった形です。

伝票番号が同じ場合は、所属コードと所属名をセットしたいと考えています。
最終行は毎回変動します。

何卒よろしくお願いします。

5
6
7

質問者からの補足コメント

  • すみません補足です
    同一伝票番号で、所属コード、所属名の空白セルは
    次のようになっています(泣)

    伝票番号 所属コード 所属名
    1000 1 あいう
    1000
    1000 1 あいう
    1000 1 あいう
    1000
    1000
    1000
    1000 1 あいう
    1000
    といった感じです。
    どうしたら良いでしょうか?

      補足日時:2017/05/26 12:17
  • 伝票番号はC列です。
    記載のコードを実行すると

    コンパイルエラー
    NEXTに対応するFORがありません

    と出てきます。。。

      補足日時:2017/05/26 13:10

A 回答 (4件)

以下のマクロを標準モジュールへ登録してください


Option Explicit
Public Sub sample()
Dim row, maxrow As Long
maxrow = Cells(Rows.Count, "C").End(xlUp).row
If maxrow < 3 Then Exit Sub
For row = 2 To maxrow
If Cells(row, "C").Value = Cells(row - 1, "C").Value Then
If Cells(row, "D").Value = "" Then Cells(row, "D").Value = Cells(row - 1, "D").Value
If Cells(row, "E").Value = "" Then Cells(row, "E").Value = Cells(row - 1, "E").Value
End If
Next
MsgBox ("完了")
End Sub
    • good
    • 1
この回答へのお礼

ありがとうございます!
きちんと動作しました!
助かりました(笑)

お礼日時:2017/05/26 13:45

No1です。


>コンパイルエラー
>NEXTに対応するFORがありません

手打ちでNo1のマクロを打たないで、マウスでマクロを選択し、それを標準モジュールへコピー&ペーストしてください。
マクロはこちらで、動作確認済みのものを提示しています。
    • good
    • 1

No1です。


伝票番号がC列で間違いないでしょうか。
それであれば、No1のマクロで、処理できませんか。どのような結果になりましたか。
    • good
    • 0

こんにちは!



Sub Sample1()
Dim i As Long
For i = 2 To Cells(Rows.Count, "A").End(xlUp).row
With Cells(i, "D")
If .Value = "" Then
.Resize(, 2).Value = .Offset(-1).Resize(, 2).Value
End If
End With
Next i
End Sub

こんな感じで良いのでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます!
参考にさせていただきます。

お礼日時:2017/05/26 13:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!