-1

以下のコードは、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
4

2 に答える 2

0

次のコードを使用することをお勧めします。より複雑に見えるかもしれませんが、確かにより良い、より堅牢な仕事をします。入力と出力の範囲を 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

サブ終了

于 2014-06-19T20:14:34.757 に答える
0
Sub PEC()
    For x = 2 to 26848
        If Range("AE" & x) = "A.06" Then Range("AO" & x) = 1
    Next x
End Sub
于 2014-06-19T20:00:17.727 に答える