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

画像ファイルの勤怠表について"A1:D8"セルまでが”B1”記載の”山田”の勤怠データになります。
同様に"A9:D16"セルまでが”中村”の勤怠データになります。
”A2:B8”までの空白セルにA1セル"10",B2セル”山田”と入力をしたい
同様に”A10:B16”の空白セルに”11”、”中村”と入力したい。

画像は2人分ですが、実際は300人以上います。

関数もしくはVBA他で一括処理する方法をご教示頂けますと幸いです。

「エクセル表作成について」の質問画像

A 回答 (5件)

これでどうでしょうか。



C列から最終行を取得します。


Sub FillBlanks()
  Dim lastRow As Long
  Dim i As Long
  lastRow = Cells(Rows.Count, 3).End(xlUp).Row
  For i = 2 To lastRow
    If Cells(i, 1).Value = "" Then
      Cells(i, 1).Value = Cells(i - 1, 1).Value
    End If
    If Cells(i, 2).Value = "" Then
      Cells(i, 2).Value = Cells(i - 1, 2).Value
    End If
  Next i
End Sub
    • good
    • 1

A:C列を列番号で選択状態にします。


[ Ctrl+G ]キーで[ジャンプ]を出し[セル選択]を押します。
[空白セル]への選択で、A:B列の空白セルが選択状態になるので、
アクティブセルのA2に「=」を入れ[ ↑ ]キーで「=A1」にして
[ Ctrl+Enter ]キーを押せば空白セルを埋めることができます。
https://excelkamiwaza.com/kuuhaku_umeru.html

マクロの場合は、列数などを指定したりする必要がありますが、
上記の手順を覚えておけば、列数などが増えても応用できます。
    • good
    • 1

表内のセルを選択→Ctrl+G→セル選択→○空白セルを選択→OK



(サンプル表だとおそらくA2がアクティブになるので)=を入れてA1を選択しCtrl+Enter

埋まったデータは式なので必要に応じて値にコピペ

でどうでしょうか?
    • good
    • 1

VBAエディタを開いて、新しいモジュールを作成します。

その後、以下のコードを入力します。

Sub InputData()
Dim i As Integer
Dim j As Integer
Dim name As String
Dim num As Integer

For i = 2 To 16 Step 8 ' 2行目と10行目を編集する
name = Cells(i, 2) ' 名前を取得する
num = Cells(i, 1) ' 番号を取得する
Cells(i, 1) = num ' 番号を入力する
Cells(i, 2) = name ' 名前を入力する
Next i
End Sub


このコードでは、2行目と10行目の名前と番号を取得し、1列目と2列目に入力する処理を行っています。実際には、このコードを編集して、必要なセルの範囲や入力する値を変更する必要があります。
    • good
    • 1

Sub CopyData()


Dim i As Integer
i = 2 'コピーを開始する行番号を指定
Do While Not IsEmpty(Range("A" & i))
Range("A" & i & ":A" & i + 6).Copy Destination:=Range("B" & i & ":B" & i + 6)
i = i + 7 '次のコピーを行う行番号に移動
Loop
End Sub
    • good
    • 1

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