Применить макрос к каждой ячейке в выделенном диапазоне, помогите

Автор Александр Кислый, 20.04.2017, 15:00

« назад - далее »

Александр Кислый

Мало разбираюсь в VBA

Написал макрос, заменяющий в ячейке значение, к примеру, 180 30 15 на 180* 30' 15"
Выделяя всего одну ячейку, макрос срабатывает, а мне нужно чтоб он срабатывал еще и на каждую ячейку, которая находится в выделенном диапазоне.

Получается нужен цикл, который берет значение ячейки, эту ячейку макрос обрабатывает, переходим к следующей ячейке диапазона, и все по новой.

Sub ApplyInDegrees()

    'DigitsValue - тут значение ячейки
Dim DigitsValue As String
DigitsValue = ActiveCell.Value


Dim degrees As Integer
Dim minutes As Integer
Dim seconds As Double

Dim DP As Integer
Dim MP As Integer

DP = InStr(1, DigitsValue, " ")
MP = InStr(DP + 1, DigitsValue, " ")

degrees = Val(Left(DigitsValue, DP - 1))
minutes = Val(Mid(DigitsValue, DP + 1, MP - DP - 1))
seconds = Val(Mid(DigitsValue, MP + 1, Len(DigitsValue) - MP))
   
ActiveCell.Value = degrees & "* " & minutes & "' " & seconds & """"
           
End Sub


Может кто-то может что подсказать? Заранее благодарю.

kuklp1

Александр Кислый, пример надо выкладывать в файле Эксел, согласно правил_форума.
Public Sub www()
    Dim c As Range, a, b, s$, i&
    b = Array("* ", "' ", """")
    For Each c In Selection.Cells
        a = Split(c)
        For i = 0 To 2: s = s & a(i) & b(i): Next
        c = s: s = ""
    Next
End Sub
Я, как всегда, чертовски адекватен... Email: kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728, E332314026771