#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
Конец подраздела