以下のコードは、Excel 2008 でミスマッチまたは範囲エラーを示します。どうすれば修正できますか?
Sub PEC()
Dim PEC As String, result As Integer
PEC = Range("AE2:AE26848").Value
If PEC = "A.06" Then result = 1
Range("AO2:AO26848").Value = result
End Sub
以下のコードは、Excel 2008 でミスマッチまたは範囲エラーを示します。どうすれば修正できますか?
Sub PEC()
Dim PEC As String, result As Integer
PEC = Range("AE2:AE26848").Value
If PEC = "A.06" Then result = 1
Range("AO2:AO26848").Value = result
End Sub
次のコードを使用することをお勧めします。より複雑に見えるかもしれませんが、確かにより良い、より堅牢な仕事をします。入力と出力の範囲を SrcRng と DstRng として割り当てるだけです。範囲の FIND メソッドは、特定の値を確認するのに適した方法です。
サブ PEC()
Dim SrcRng As Range Dim DstRng As Range Dim rcell As Range Set SrcRng = Range ("AE2:AE26848") Set DstRng = Range("AO2:AO26848") Set rcell = SrcRng.Find(what:="A.06", after:=SrcRng.Cells(1, 1), _ LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _ SearchDirection:=xlNext, MatchCase:=False) If Not rcell Is Nothing Then DstRng.Value = 1 End If
サブ終了
Sub PEC()
For x = 2 to 26848
If Range("AE" & x) = "A.06" Then Range("AO" & x) = 1
Next x
End Sub