|
▼初心者 さん:
わたしも初心者です。^^
記述されている Sub Test() を実行すると、空白セルまで連番が振られますので条件を否定します。。
1.空白セルは空白とする。
2.グレイのセル ColorIndex = 15 は、連番を振らずにそのままにする。
3.見出しが入ったセル (A1 のみかしら?)は、そのままにする。
せっかく配列が記述してありましたので、改造に取り組みましたが、、、
配列を吐き出すと、空白セルに "0" が表示されます。><
一応配列の改造分です。。
Sub Test()
Dim i As Long
Dim f As Long
Dim Lrow As Long
Dim myNo() As Long
With Worksheets("Sheet1")
Lrow = .Range("A" & CStr(Rows.Count)).End(xlUp).Row - 1
If Lrow = 1 Then Exit Sub
ReDim myNo(1 To Lrow, 1 To 1)
i = 1
For f = i To Lrow
If Not (Cells(f + 1, 1).Interior.ColorIndex = 15 Or Cells(f + 1, 1).Value = "") Then
myNo(f, 1) = i
i = i + 1
ElseIf Cells(f + 1, 1).Value = "" Then
myNo(f, 1) = Empty '← ここの表現が悪いのかしら?
Else
myNo(f, 1) = Cells(f + 1, 1)
End If
Next
.Range("A2:A" & CStr(Lrow) + 1).Value = myNo
End With
End Sub
上から順番にセルを判定して連番を振るしか対応しきれず、For Each Next で作成しました。
Sub Test2()
Dim i As Long
Dim Lrow As Long
Dim myRange As Range
Dim c As Range
Lrow = Range("A" & Rows.Count).End(xlUp).Row
Set myRange = Range("A2", Range("A" & Rows.Count).End(xlUp))
For Each c In myRange
With c
If Not (.Interior.ColorIndex = 15 Or .Value = "") Then
.Value = i + 1
i = i + 1
End If
End With
Next
End Sub
見出しの入ったセルは、A1 セルだけでしょうか?
他にあれば、見出しの特徴はなにかしら?
|
|