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

Вход

Регистрация

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

 

= Мир MS Excel/Программа без передачи активновсти диапазона - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Программа без передачи активновсти диапазона (Формулы/Formulas)
Программа без передачи активновсти диапазона
vlaste Дата: Воскресенье, 16.10.2016, 11:18 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Я написал программу Подведение итогов с активным диапазоном ячейки, а как изменить данную программу, чтобы она была без передачи активности?
К сообщению приложен файл: _-3-.xlsm (13.3 Kb)


Сообщение отредактировал vlaste - Воскресенье, 16.10.2016, 11:19
 
Ответить
СообщениеЯ написал программу Подведение итогов с активным диапазоном ячейки, а как изменить данную программу, чтобы она была без передачи активности?

Автор - vlaste
Дата добавления - 16.10.2016 в 11:18
Karataev Дата: Воскресенье, 16.10.2016, 11:29 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
[vba]
Код
Sub ПодведениеИтогов2()

    Dim Диапазон As Range, Адрес As String
    Dim n As Long, m As Long, i As Long, j As Long
    
    Set Диапазон = Selection
    'Проверка того, чтобы выделенная область состояла из одного диапазона
    If Диапазон.Areas.Count > 1 Then
        Exit Sub
    End If
    'Нахождение числа строк и столбцов у диапазона
    n = Диапазон.Rows.Count
    m = Диапазон.Columns.Count
    'Подведение итогов по строкам
    For i = 1 To n
        Адрес = Диапазон.Rows(i).Address
        Диапазон.Cells(i, m).Offset(rowoffset:=0, columnoffset:=1).FormulaLocal = _
            "=СУММ(" & Адрес & ")"
    Next i

    For j = 1 To m
        Адрес = Диапазон.Columns(j).Address
        Диапазон.Cells(n, j).Offset(rowoffset:=1, columnoffset:=0).FormulaLocal = _
            "=СУММ(" & Адрес & ")"
    Next j
    
    Адрес = Диапазон.Address
    Диапазон.Cells(n, m).Offset(rowoffset:=1, columnoffset:=1).FormulaLocal = _
        "=СУММ(" & Адрес & ")"
        
End Sub
[/vba]
PS. Я сделал объявление переменных, т.к. без этого не делаю макросы. Объявления не обязательны, если Вам удобно без объявления переменных, но могут быть скрытые ошибки.
 
Ответить
Сообщение[vba]
Код
Sub ПодведениеИтогов2()

    Dim Диапазон As Range, Адрес As String
    Dim n As Long, m As Long, i As Long, j As Long
    
    Set Диапазон = Selection
    'Проверка того, чтобы выделенная область состояла из одного диапазона
    If Диапазон.Areas.Count > 1 Then
        Exit Sub
    End If
    'Нахождение числа строк и столбцов у диапазона
    n = Диапазон.Rows.Count
    m = Диапазон.Columns.Count
    'Подведение итогов по строкам
    For i = 1 To n
        Адрес = Диапазон.Rows(i).Address
        Диапазон.Cells(i, m).Offset(rowoffset:=0, columnoffset:=1).FormulaLocal = _
            "=СУММ(" & Адрес & ")"
    Next i

    For j = 1 To m
        Адрес = Диапазон.Columns(j).Address
        Диапазон.Cells(n, j).Offset(rowoffset:=1, columnoffset:=0).FormulaLocal = _
            "=СУММ(" & Адрес & ")"
    Next j
    
    Адрес = Диапазон.Address
    Диапазон.Cells(n, m).Offset(rowoffset:=1, columnoffset:=1).FormulaLocal = _
        "=СУММ(" & Адрес & ")"
        
End Sub
[/vba]
PS. Я сделал объявление переменных, т.к. без этого не делаю макросы. Объявления не обязательны, если Вам удобно без объявления переменных, но могут быть скрытые ошибки.

Автор - Karataev
Дата добавления - 16.10.2016 в 11:29
vlaste Дата: Воскресенье, 16.10.2016, 11:51 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Karataev, не могли бы пожалуйста объяснить, что должно получиться в конце, а то я не совсем понял
 
Ответить
СообщениеKarataev, не могли бы пожалуйста объяснить, что должно получиться в конце, а то я не совсем понял

Автор - vlaste
Дата добавления - 16.10.2016 в 11:51
vlaste Дата: Воскресенье, 16.10.2016, 11:54 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Karataev, у вас в программе передает же активность
 
Ответить
СообщениеKarataev, у вас в программе передает же активность

Автор - vlaste
Дата добавления - 16.10.2016 в 11:54
Karataev Дата: Воскресенье, 16.10.2016, 11:56 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Пользователь выделяет фрагмент "B2:E4" - запускает макрос из поста 2 - после работы макроса на листе появятся формулы в этих фрагментах:
1) B5:E5
2) F2:F4
3) F5

Отличие моего кода от Вашего в том, что у Вашего макроса во время работы макроса изменялась активная ячейка. В моем макросе такого нет.


Сообщение отредактировал Karataev - Воскресенье, 16.10.2016, 12:01
 
Ответить
СообщениеПользователь выделяет фрагмент "B2:E4" - запускает макрос из поста 2 - после работы макроса на листе появятся формулы в этих фрагментах:
1) B5:E5
2) F2:F4
3) F5

Отличие моего кода от Вашего в том, что у Вашего макроса во время работы макроса изменялась активная ячейка. В моем макросе такого нет.

Автор - Karataev
Дата добавления - 16.10.2016 в 11:56
vlaste Дата: Воскресенье, 16.10.2016, 12:07 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 80% ±

Excel 2010
Karataev, спасибо
 
Ответить
СообщениеKarataev, спасибо

Автор - vlaste
Дата добавления - 16.10.2016 в 12:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Программа без передачи активновсти диапазона (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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