|
▼amatsuno さん:
>F列を参照し、F列に指定の文字列があったらE列にF列の値を入力したいと思っています
>
>現在、以下のようなカラム構成になっています
>
>AAA1,BBB1,CCC1,DDD1,0:01:01,10:20:30
>AAA2,BBB2,CCC2,DDD2,0:02:02,10:20:31
>AAA3,BBB3,CCC3,DDD3,0:03:03,10:20:32
>AAA4,BBB4,CCC4,DDD4,0:04:04,10:20:33
>AAA5,BBB5,CCC5,DDD5,0:05:05,10:20:34
>AAA6,BBB6,CCC6,DDD6,0:06:06,23:59:58
>AAA7,BBB7,CCC7,DDD7,0:07:07,10:20:30
>AAA8,BBB8,CCC8,DDD8,0:08:08,23:59:58
>AAA9,BBB9,CCC9,DDD9,0:09:09,10:20:30
>
>このとき、F列が「23:59:58」の行に関しては、E列を「23:59:58」にしたいと思っています
>※下記のように、AAA6とAAA8のE列を23:59:58にしたい
>
>AAA1,BBB1,CCC1,DDD1,0:01:01,10:20:30
>AAA2,BBB2,CCC2,DDD2,0:02:02,10:20:31
>AAA3,BBB3,CCC3,DDD3,0:03:03,10:20:32
>AAA4,BBB4,CCC4,DDD4,0:04:04,10:20:33
>AAA5,BBB5,CCC5,DDD5,0:05:05,10:20:34
>AAA6,BBB6,CCC6,DDD6,23:59:58,23:59:58
>AAA7,BBB7,CCC7,DDD7,0:07:07,10:20:30
>AAA8,BBB8,CCC8,DDD8,23:59:58,23:59:58
>AAA9,BBB9,CCC9,DDD9,0:09:09,10:20:30
>
>下記のコードで書いたのですが、
>AAA6のほうだけが変換されてしまいます。
>どのように修正すればいいのでしょうか?
>
>Dim C As Long
>Dim c2 As Range
>'検索語
>Const MYTXT As String = "23:59:58"
>
>For C = 1 To Cells(Rows.Count, "F").End(xlUp).Row
>Set c2 = ActiveSheet.Columns("F:F").Find(What:=MYTXT, _
>LookIn:=xlValues, _
>LookAt:=xlPart, _
>MatchCase:=False)
>If Not c2 Is Nothing Then
>c2.Offset(0, -1).Value = "23:59:58"
>End If
>Next C
すいません。
解決しました
Dim c2 As Range
'検索語
Const MYTXT As String = "23:59:58"
Dim firstRow As Long
firstRow = 1
Set c2 = ActiveSheet.Columns("F:F").Find(What:=MYTXT, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
If Not c2 Is Nothing Then
firstRow = c2.Row
Do
c2.Offset(0, -1).Value = c2.Value
Set c2 = ActiveSheet.Columns("F:F").FindNext(c2)
Loop Until firstRow = c2.Row
End If
|
|