Excel Macro VBAの備忘録。
特定Sheetに対して、Data入力済みの行のうち、値が入力されていないCellを自動判別し、一つ上の行の同じColumnから値を自動Copyし入力する。
Sub CheckNullCell()
Dim TargetSheet As Worksheet
Set TargetSheet = Worksheets("deals")
' 上記の場合は、dealsという名前のSheetのみに対して処理するために、Sheet名を
Dim CountRow As Long
Dim CountColumn As Long
Dim MaxRow As Long
MaxRow = TargetSheet.Cells(Rows.Count, 6).End(xlUp).Row
' ここでは6番目のColumnを基準にして、全行数がいくつあるか確認。
CountRow = 1
Do While CountRow <= MaxRow
CountColumn = 1
If TargetSheet.Cells(CountRow, CountColumn).Value = "" Then
Do While CountColumn <= 3
If TargetSheet.Cells(CountRow, CountColumn).Value = "" Then
TargetSheet.Cells(CountRow, CountColumn).Value = TargetSheet.Cells(CountRow - 1, CountColumn).Value
CountColumn = CountColumn + 1
End If
' 上記の場合は3番目のColumnまでチェックし、値がNullであれば一つ上の行の同じColumnの値をCopy。
Loop
End If
CountRow = CountRow + 1
Loop
End Sub
コメント