Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: Александр Кислый от 20.04.2017, 15:00

Название: Применить макрос к каждой ячейке в выделенном диапазоне, помогите
Отправлено: Александр Кислый от 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


Может кто-то может что подсказать? Заранее благодарю.
Название: Re: Применить макрос к каждой ячейке в выделенном диапазоне, помогите
Отправлено: kuklp1 от 21.04.2017, 02:30
Александр Кислый, пример надо выкладывать в файле Эксел, согласно правил_форума (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
Название: Re: Применить макрос к каждой ячейке в выделенном диапазоне, помогите
Отправлено: Александр Кислый от 21.04.2017, 12:46
Мои благодарности