|
▼K.C さん:
おはようございます。
処理速度を上げる方法はあると思いますが、それは別の方におまかせするとして・・。
このコードで疑問があったので質問です。
>Sub test()
>
>Dim n, o, m, x, y, i As Double
>n = Range("A1").End(xlDown).Row
>o = Range("B1").End(xlDown).Row
>
>For m = 1 To o
>
> x = Cells(m, 2)
>st1:
> For i = 1 To n
>
> If Cells(i, 1) <= x And x <= Cells(i + 1, 1) Then
> y = i + 1
>
> GoTo st2
>
> ElseIf Cells(i, 1) > x And x > Cells(i + 1, 1) Then
' このIF文にひっかかるcells(i,1)という値の一例を教えて下さい
' ここに入ってくるcells(i,1)って存在しないのではないですか?
' もしかして、Andではなくて、Orですか?
' でも、そうだとしたらこれループしっぱなしになってしまいますよ。
>
> GoTo st1
>
> ElseIf Cells(1, 1) > x Then
> y = 2
> GoTo st2
>
> ElseIf Cells(n, 1) < x Then
> y = n
> GoTo st2
>
> End If
> Next
>st2:
>
> Cells(m, 3).Value = y
>
>Next
>
>End Sub
それから、Goto文を否定するわけではないのですが、
上のコード、Goto文を入れない方が見やすいコードになりませんか?
|
|