[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『一行分はできたけれど、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.