|
▼雅(みやび) さん:
こんにちは。
試してみましたが、状況が再現しませんでした。
差し支えなければ、こちらでも確認できるコードを提示してみてください。
また、
>(決められた数値)を自動入力する
のが目的ですか?
提示のコードは、C列の値によって、数値を表示する『関数』を条件分岐させている、
つまり、IF関数にはネスト制限があるので、値によって入れる数式を変更しているように見えます。
数式を入れる事が目的なら、
Sub sample()
Dim NOWLINE As Long
NOWLINE = 40 '仮に。
'NOWLINE = Cells(65536, 3).End(xlUp).Row'(C列最終行なら)
Range(Cells(3, 30), Cells(NOWLINE - 2, 30)).Formula _
= "=IF(OR(C3="""",RIGHT(C3,1)=""計""),""""," _
& "IF(AND(LEFT(C3,2)*1>31,LEFT(C3,2)*1<40),320," _
& "IF(OR(LEFT(C3,2)=""31"",AND(LEFT(C3,2)*1>70,LEFT(C3,2)*1<74))" _
& ",LEFT(C3,2)*10,LEFT(C3,1)*100)))"
End Sub
数値なら、直接、値を代入します。
Sub sample2()
Dim i As Long
Dim NOWLINE As Long
Dim n As Long
NOWLINE = 10 '仮に。
'NOWLINE = Cells(65536, 3).End(xlUp).Row'(C列最終行なら)
For i = 3 To NOWLINE - 2
If Right(Cells(i, 3).Value, 1) <> "計" Then
n = Val(Left(Cells(i, 3).Value, 2))
Select Case n
Case 31, 71, 72, 73
Cells(i, 30).Value = n * 10
Case Is <= 30
Cells(i, 30).Value = (n \ 10) * 100
Case Is <= 39
Cells(i, 30).Value = 320
Case Else
Cells(i, 30).Value = (n \ 10) * 100
End Select
End If
Next i
End Sub
|
|