Ошибка несоответствия или диапазона

#excel #vba #macos #range #excel-2008

#excel #vba #macos #диапазон #excel-2008

Вопрос:

Приведенный ниже код выдает ошибку несоответствия или диапазона в 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
 

Комментарии:

1. Что вы пытаетесь сделать? Невозможно получить значение из диапазона, превышающего одну ячейку.

2. Я пытаюсь поместить «1» в ячейку, если «A.06» находится в другом столбце, если это имеет смысл?

Ответ №1:

 Sub PEC()
    For x = 2 to 26848
        If Range("AE" amp; x) = "A.06" Then Range("AO" amp; x) = 1
    Next x
End Sub
 

Ответ №2:

Я рекомендую использовать следующий код. Это может показаться более сложным, но это, безусловно, делает работу лучше и надежнее. Это просто назначение ваших входных и выходных диапазонов как SrcRng и DstRng. Метод ПОИСКА для диапазонов — хороший способ проверить наличие определенных значений.

Sub 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
 

Конец подраздела