Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/получение адресов ячеек в цикле - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » получение адресов ячеек в цикле (Макросы Sub)
получение адресов ячеек в цикле
berya Дата: Вторник, 24.12.2013, 17:00 | Сообщение № 1
Группа: Проверенные
Ранг: Новичок
Сообщений: 27
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день.

Помогите, пожалуйста исправить макрос на получение адресов ячеек относительно активной ячейки и вставки формул в соответствующие ячейки.

Количество добавляемых строк изменяется отноительно активной по фомуле: число активной ячейки -2. соответственно может быть разное количество добавленых строк
Спасибо за стремление помочь, вроде разобрался
[vba]
Код

Dim p&
      For p = 1 To b Step 1
      g = p * 2 - 1
         range(d).Offset(, -4).Activate
         Selection.End(xlUp).Offset(g).Select
         Z = ActiveCell.Address
      range(d).Offset(p, 3).Formula = "=" & Z
      Next p

[/vba]

Если, кто-то предложит более интересный вариант - буду благодарен.
К сообщению приложен файл: 2661244.xlsm (34.0 Kb)


Сообщение отредактировал berya - Вторник, 24.12.2013, 21:51
 
Ответить
СообщениеДобрый день.

Помогите, пожалуйста исправить макрос на получение адресов ячеек относительно активной ячейки и вставки формул в соответствующие ячейки.

Количество добавляемых строк изменяется отноительно активной по фомуле: число активной ячейки -2. соответственно может быть разное количество добавленых строк
Спасибо за стремление помочь, вроде разобрался
[vba]
Код

Dim p&
      For p = 1 To b Step 1
      g = p * 2 - 1
         range(d).Offset(, -4).Activate
         Selection.End(xlUp).Offset(g).Select
         Z = ActiveCell.Address
      range(d).Offset(p, 3).Formula = "=" & Z
      Next p

[/vba]

Если, кто-то предложит более интересный вариант - буду благодарен.

Автор - berya
Дата добавления - 24.12.2013 в 17:00
Serge_007 Дата: Четверг, 02.01.2014, 21:34 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
В код особо не вникал, но вроде так надо (если я задачу правильно понял): [vba]
Код
Dim p&, b, g
b = ActiveCell.Value - 2
     For p = 1 To b
     g = p * 2 - 1
     ActiveCell.Offset(, -4).End(xlUp).Offset(g).Activate
     ActiveCell.Offset(p, 3).Value = ActiveCell.Address
     Next p
[/vba]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеВ код особо не вникал, но вроде так надо (если я задачу правильно понял): [vba]
Код
Dim p&, b, g
b = ActiveCell.Value - 2
     For p = 1 To b
     g = p * 2 - 1
     ActiveCell.Offset(, -4).End(xlUp).Offset(g).Activate
     ActiveCell.Offset(p, 3).Value = ActiveCell.Address
     Next p
[/vba]

Автор - Serge_007
Дата добавления - 02.01.2014 в 21:34
Hugo Дата: Четверг, 02.01.2014, 21:44 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Вообще-то я не разобрался...
Уже вот тут выпало в ошибку:
[vba]
Код
    a = ActiveCell.Value
      
     With ActiveCell
         b = a - 2
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеВообще-то я не разобрался...
Уже вот тут выпало в ошибку:
[vba]
Код
    a = ActiveCell.Value
      
     With ActiveCell
         b = a - 2
[/vba]

Автор - Hugo
Дата добавления - 02.01.2014 в 21:44
Serge_007 Дата: Четверг, 11.06.2015, 22:37 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Угадали или нет?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеУгадали или нет?

Автор - Serge_007
Дата добавления - 11.06.2015 в 22:37
KSV Дата: Пятница, 12.06.2015, 11:31 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
так надо?
[vba]
Код
Sub Str()
     Dim r&, n&
      
     Application.ScreenUpdating = False
     With ActiveCell
         r = .Value - 2
         If r <= 0 Then Exit Sub ' достаточно одной проверки
         .Offset(1).Resize(r).EntireRow.Insert
         With .Offset(1, 1).Resize(r) ' присваиваем сразу всем (без цикла)
             .Font.Size = 16
             .Font.ThemeColor = 5
             .Value = "Переможець бою №"
         End With
         .Offset(, -4).Resize(r + 1, 14).Borders.LineStyle = 1 ' не понял зачем вам это, но оставил, чтобы не нарушать вашу логику
         n = 1 ' начальное смещение по строкам, относительно шапки таблицы
         For r = 1 To r
             .Offset(r, 3).Formula = "=" & Cells(4, 3).Offset(n).Address
             'MsgBox "Адрес об'единённого диапазона : " & Cells(4, 3).Offset(n).MergeArea.Address
             n = n + Cells(4, 3).Offset(n).MergeArea.Rows.Count ' смещение на следующую объединенную ячейку
         Next
     End With
     Application.ScreenUpdating = True
End Sub
[/vba]


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениетак надо?
[vba]
Код
Sub Str()
     Dim r&, n&
      
     Application.ScreenUpdating = False
     With ActiveCell
         r = .Value - 2
         If r <= 0 Then Exit Sub ' достаточно одной проверки
         .Offset(1).Resize(r).EntireRow.Insert
         With .Offset(1, 1).Resize(r) ' присваиваем сразу всем (без цикла)
             .Font.Size = 16
             .Font.ThemeColor = 5
             .Value = "Переможець бою №"
         End With
         .Offset(, -4).Resize(r + 1, 14).Borders.LineStyle = 1 ' не понял зачем вам это, но оставил, чтобы не нарушать вашу логику
         n = 1 ' начальное смещение по строкам, относительно шапки таблицы
         For r = 1 To r
             .Offset(r, 3).Formula = "=" & Cells(4, 3).Offset(n).Address
             'MsgBox "Адрес об'единённого диапазона : " & Cells(4, 3).Offset(n).MergeArea.Address
             n = n + Cells(4, 3).Offset(n).MergeArea.Rows.Count ' смещение на следующую объединенную ячейку
         Next
     End With
     Application.ScreenUpdating = True
End Sub
[/vba]

Автор - KSV
Дата добавления - 12.06.2015 в 11:31
Pelena Дата: Пятница, 12.06.2015, 12:01 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Чего это вы решили отвечать полтора года спустя? %)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЧего это вы решили отвечать полтора года спустя? %)

Автор - Pelena
Дата добавления - 12.06.2015 в 12:01
SLAVICK Дата: Пятница, 12.06.2015, 12:26 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Чего это вы решили отвечать полтора года спустя?

:o и правда

Это, наверное, потому что от ТС новая тема появилась... а в этой он так и не отписался :) - вероятно, что и в новой не будет.

Это был тонкий юмор от Serge_007 hands . Угадал?


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Пятница, 12.06.2015, 12:26
 
Ответить
Сообщение
Чего это вы решили отвечать полтора года спустя?

:o и правда

Это, наверное, потому что от ТС новая тема появилась... а в этой он так и не отписался :) - вероятно, что и в новой не будет.

Это был тонкий юмор от Serge_007 hands . Угадал?

Автор - SLAVICK
Дата добавления - 12.06.2015 в 12:26
KSV Дата: Пятница, 12.06.2015, 18:02 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
[offtop]у меня эта тема всплыла вверх, смотрю, ответ никто не дал, вот я и ответил :) а на дату я и не смотрю...

[p.s.]надо же создавать активность на форуме... :D [/p.s.][/offtop]


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщение[offtop]у меня эта тема всплыла вверх, смотрю, ответ никто не дал, вот я и ответил :) а на дату я и не смотрю...

[p.s.]надо же создавать активность на форуме... :D [/p.s.][/offtop]

Автор - KSV
Дата добавления - 12.06.2015 в 18:02
berya Дата: Воскресенье, 14.06.2015, 18:46 | Сообщение № 9
Группа: Проверенные
Ранг: Новичок
Сообщений: 27
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Доброе вркмя суток.
В макросе от KSV есть недаработка в ввиде привязки к постоянной ячейке - Cells(4, 3).
В настоящее время этот макрос уже переделан и выполняетя.
Большое спасибо всем, кто проявил внимание и участие в этой теме.
 
Ответить
СообщениеДоброе вркмя суток.
В макросе от KSV есть недаработка в ввиде привязки к постоянной ячейке - Cells(4, 3).
В настоящее время этот макрос уже переделан и выполняетя.
Большое спасибо всем, кто проявил внимание и участие в этой теме.

Автор - berya
Дата добавления - 14.06.2015 в 18:46
Serge_007 Дата: Воскресенье, 14.06.2015, 18:56 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Угадал?
Угадал :)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Угадал?
Угадал :)

Автор - Serge_007
Дата добавления - 14.06.2015 в 18:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » получение адресов ячеек в цикле (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!