Всем доброго времени суток. Прошу помощи в создании макроса, который бы проверял выделенный мною диапазон ячеек и при обнаружении в каких то из них буквы, например *Д*, он прописывал в последующих за этой ячейкой цифры от 1 до 5.
Например: в F8 значение *Д* , то макрос в последующие ячейки F9-F13 прописывает числа от 1 до 5, соответственно. (без форматирования)
написал: Так числа прописывать вниз от ячейки (F9-F13) или вбок?
Прошу прощения, после работы голова совсем не варила ^^ (G8,H8,I9,J8,K8) Igor67, Благодарю вас за помощь. Все работает идеально. Подскажите пожалуйста, что требуется заменить и на что, для того, чтобы не выбирать диапазон, а изначально прописать его в коде макроса,
Const myRange = "E5:M24"
Sub poisk()
Dim YourRange As Range, iFoundRng As Range, k As Long
Dim firstAddress As String, findDan As String, arrZam
Set YourRange = Range(myRange)
'Set YourRange = Application.InputBox _
' (Prompt:="Выделите диапазон ячеек", _
' Title:="", Type:=8)
'If YourRange Is Nothing Then MsgBox "Выберите диапазон, а то ни чего делать не буду", vbInformation, "НУ?!"
findDan = "д"
arrZam = Split("1~2~3~4~5", "~")
k = UBound(arrZam) + 1
If Not YourRange Is Nothing Then
Set iFoundRng = YourRange.Find(What:=findDan, LookIn:=xlFormulas, LookAt:=xlWhole) 'поиск
If Not iFoundRng Is Nothing Then 'если нашли
firstAddress = iFoundRng.Address 'запоминаем адрес найденной ячейки, чтобы продолжить поиск по листу
iFoundRng.Offset(, 1).Resize(, k).Value = arrZam
'Debug.Print firstAddress
Do 'цикл поиска, т.к. одно и то же значение может встречаться много раз
Set iFoundRng = YourRange.FindNext(iFoundRng) 'продолжаем поиск на том же листе
iFoundRng.Offset(, 1).Resize(, k).Value = arrZam
'Debug.Print iFoundRng.Address
Loop While iFoundRng.Address <> firstAddress
End If
End If
End Sub
Дико извиняюсь за то, что беспокою вновь. Но заметил, что данный макрос рисует в ячейках именно текст. В итоге постоянно напоминание о том, что *число сохранено как текст*. Возможно ли, что бы он заполнял ячейки числами *Общего* формата?