Мало разбираюсь в 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
Может кто-то может что подсказать? Заранее благодарю.
Александр Кислый, пример надо выкладывать в файле Эксел, согласно правил_форума (https://forum.msexcel.ru/pravila_foruma/pravila_foruma-t129.0.html).
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
Мои благодарности