Доброго времени суток. Подскажите, пожалуйста, как можно через макрос выделить на листе ячейки, содержащие, скажем, значение "10"? Range выделяет только сплошной областью... С VBA разбираться начал недавно, больше по встроенной справке... Не смог понять, как должна выглядеть вышеуказанная команда. Если подобное уже спрашивали - прошу прощения, не нашёл через поиск.
Доброго времени суток. Подскажите, пожалуйста, как можно через макрос выделить на листе ячейки, содержащие, скажем, значение "10"? Range выделяет только сплошной областью... С VBA разбираться начал недавно, больше по встроенной справке... Не смог понять, как должна выглядеть вышеуказанная команда. Если подобное уже спрашивали - прошу прощения, не нашёл через поиск.Krep_Kospit
Кривенько, зато своё. Выделяем область, задаём число и готово. [vba]
Код
Sub Макрос1() ib = InputBox("Введите число для выделения") For Each c In Selection If c.Value = CDbl(ib) Then rg = rg & c.Address & ", " End If Next rg = Left(rg, Len(rg) - 2) Range(rg).Select End Sub
[/vba]
Кривенько, зато своё. Выделяем область, задаём число и готово. [vba]
Код
Sub Макрос1() ib = InputBox("Введите число для выделения") For Each c In Selection If c.Value = CDbl(ib) Then rg = rg & c.Address & ", " End If Next rg = Left(rg, Len(rg) - 2) Range(rg).Select End Sub
Sub Select_10() 'выделить в выбранном диапазоне ячейки со значением 10 Dim rSel As Range, rCell As Range For Each rCell In ActiveWindow.RangeSelection If rCell = 10 Then If rSel Is Nothing Then Set rSel = rCell Else Set rSel = Union(rSel, rCell) End If End If Next rCell rSel.Select End Sub
Sub Select_10() 'выделить в выбранном диапазоне ячейки со значением 10 Dim rSel As Range, rCell As Range For Each rCell In ActiveWindow.RangeSelection If rCell = 10 Then If rSel Is Nothing Then Set rSel = rCell Else Set rSel = Union(rSel, rCell) End If End If Next rCell rSel.Select End Sub
Ну, Коля, так не честно… А вдруг Krep_Kospit, захочет прежде чем удалять ячейки полюбоваться на их содержимое на предмет выяснения "а стоит ли удалять"? А ты сразу заменять... Уж тогда сразу и удалял бы не глядя.
Хотя в учебных целях пример хорош Только если как учебник, то не надо ЧАСТЬ констант заменять их числовыми значениями и использовать сокращённую запись. Ну, что-то типа так написАть:[vba]
Код
Sub ertert() On Error Resume Next With ActiveSheet.UsedRange .Replace What:=10, Replacement:=True, LookAt:=xlWhole .SpecialCells(xlCellTypeConstants, xlLogical).Select End With End Sub
[/vba]
Ну, Коля, так не честно… А вдруг Krep_Kospit, захочет прежде чем удалять ячейки полюбоваться на их содержимое на предмет выяснения "а стоит ли удалять"? А ты сразу заменять... Уж тогда сразу и удалял бы не глядя.
Хотя в учебных целях пример хорош Только если как учебник, то не надо ЧАСТЬ констант заменять их числовыми значениями и использовать сокращённую запись. Ну, что-то типа так написАть:[vba]
Код
Sub ertert() On Error Resume Next With ActiveSheet.UsedRange .Replace What:=10, Replacement:=True, LookAt:=xlWhole .SpecialCells(xlCellTypeConstants, xlLogical).Select End With End Sub