[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『一行分はできたけれど、B列のデーターが入っているところまで自動的にできますか?』(もっち)
If Range("B3").Value = Range("a3").Value Then Range("c3").Value = "OK" Range("c3").Font.ColorIndex = 46
Else
Range("c3").Value = "NG" Range("c3").Interior.ColorIndex = 41
End If
End Sub
B3からB列のデータが入っている行まで同じことを繰り返したいのですが、 うまくいきません。
一行づつしていくしかないのでしょうか?
< 使用 Excel:Excel2007、使用 OS:Windows7 >
・最初にEndプロパティを使って、データのある最終行を求めておいて(*)
・For .. Next で3行目から最終行までを繰り返します。
(*)慣れていても使えない人もいる(私のことだが)ので、念のため書くと、
Cells(Rows.Count,"B").End(xlUp).Row でB列のデータがある最終行が求まります。
(γ) 2022/01/06(木) 16:33
Sub 別案() Dim 最終行 As Long Stop 'ブレークポイントの代わり
最終行 = Cells(Rows.Count, "B").End(xlUp).Row If 最終行 > 2 Then With Range("C3:C" & 最終行) .Formula = "=IF(A3=B3,""OK"",""NG"")" .FormatConditions.Add(Type:=xlExpression, Formula1:="=C3=""OK""").Font.ColorIndex = 46 .FormatConditions.Add(Type:=xlExpression, Formula1:="=C3=""NG""").Interior.ColorIndex = 41 End With End If End Sub
(もこな2) 2022/01/06(木) 17:06
Sub test() On Error Resume Next 'SpecialCellsで範囲を求めているので該当無し対応 With Range("B3", Cells(Rows.Count, "B").End(xlUp)).Offset(, 1)
'OKのみ .Value = Application.Evaluate("if(" & .Offset(, -2).Address & "=" & .Offset(, -1).Address & ",""OK"","""")") .SpecialCells(xlCellTypeConstants).Interior.ColorIndex = 46
'NGのみ With .SpecialCells(xlCellTypeBlanks) .Value = "NG" .Interior.ColorIndex = 41 End With End With End Sub
(tokumei) 2022/01/06(木) 19:28
For k = 3 To 最終行 ここに繰り返す処理を記述 Next
Sub test() Dim k As Long
For k = 3 To Cells(Rows.Count, "B").End(xlUp).Row If Cells(k, "B").Value = Cells(k, "A").Value Then Cells(k, "C").Value = "OK" Cells(k, "C").Font.ColorIndex = 46 Else Cells(k, "C").Value = "NG" Cells(k, "C").Interior.ColorIndex = 41 End If Next
End Sub
(マナ) 2022/01/06(木) 20:20
(もっち) 2022/01/09(日) 20:48
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.