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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Копирование суммы выделенных ячеек (Формулы/Formulas)
Копирование суммы выделенных ячеек
noobik Дата: Суббота, 04.07.2015, 08:46 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Здравствуйте, подскажите, пожалуйста решение. Как скопировать в буфер сумму выделенных ячеек. Можно сделать так что бы сумма автоматически копировалась в буфер после выделения?
 
Ответить
СообщениеЗдравствуйте, подскажите, пожалуйста решение. Как скопировать в буфер сумму выделенных ячеек. Можно сделать так что бы сумма автоматически копировалась в буфер после выделения?

Автор - noobik
Дата добавления - 04.07.2015 в 08:46
Manyasha Дата: Суббота, 04.07.2015, 10:28 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
noobik, можно запомнить сумму в отдельую переменную:[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     ' Сюда пишем диапазон, в котором выделяем ячейки для подсчета суммы
     If Intersect(Target, Range("a1:f20")) Is Nothing Then Exit Sub
     summ = 0
     For Each cell In Selection
         If IsNumeric(cell.Value) Then summ = summ + cell.Value
     Next cell
'    'Если очень хочется именно в буфер, можно вставить значение на лист и скопировать ячейку
'    [a1000] = summ
'    [a1000].Copy
End Sub
[/vba]
К сообщению приложен файл: summ.xlsm (17.6 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеnoobik, можно запомнить сумму в отдельую переменную:[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     ' Сюда пишем диапазон, в котором выделяем ячейки для подсчета суммы
     If Intersect(Target, Range("a1:f20")) Is Nothing Then Exit Sub
     summ = 0
     For Each cell In Selection
         If IsNumeric(cell.Value) Then summ = summ + cell.Value
     Next cell
'    'Если очень хочется именно в буфер, можно вставить значение на лист и скопировать ячейку
'    [a1000] = summ
'    [a1000].Copy
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 04.07.2015 в 10:28
Nic70y Дата: Суббота, 04.07.2015, 10:36 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 8761
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Sub sum18()
Dim svh As DataObject
      Set svh = New DataObject
sums = 0
For Each cell In Selection
      If IsNumeric(cell) Then
          sums = sums + cell
      End If
Next
svh.SetText sums
svh.PutInClipboard
End Sub
[/vba]
[vba]
Код
[b2] = Application.Sum(Selection.Cells.SpecialCells(xlVisible))
[b2] .Copy
[/vba]


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Суббота, 04.07.2015, 10:39
 
Ответить
Сообщение[vba]
Код
Sub sum18()
Dim svh As DataObject
      Set svh = New DataObject
sums = 0
For Each cell In Selection
      If IsNumeric(cell) Then
          sums = sums + cell
      End If
Next
svh.SetText sums
svh.PutInClipboard
End Sub
[/vba]
[vba]
Код
[b2] = Application.Sum(Selection.Cells.SpecialCells(xlVisible))
[b2] .Copy
[/vba]

Автор - Nic70y
Дата добавления - 04.07.2015 в 10:36
KSV Дата: Суббота, 04.07.2015, 11:01 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Марин, а зачем в цикле? Есть же функция листа :)
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Set Target = Intersect(Target, Range("a1:p20")) ' чтобы исключить "лишние" ячейки, если выделенный диапазон шире контролируемого
     If Target Is Nothing Then Exit Sub
     With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
         .SetText WorksheetFunction.Sum(Target)
         .PutInClipboard
     End With
End Sub
[/vba]
[p.s.]Worksheet_SelectionChange - это первое, что приходит в голову, но ИМХО, вычисление при каждом выделении - это нерациональное использование ресурсов... Лучше добавить пункт в меню по правому клику и пользоваться им при необходимости.[/p.s.]

UPD. Во вложенном файле реализация доп. пункта меню "Копировать сумму выделенных ячеек" (по правому клику на выделенных ячейках)
Можно поместить этот код в модуль книги в личную книгу макросов.
К сообщению приложен файл: SumToClipboard.xlsm (12.3 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333


Сообщение отредактировал KSV - Суббота, 04.07.2015, 12:49
 
Ответить
СообщениеМарин, а зачем в цикле? Есть же функция листа :)
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Set Target = Intersect(Target, Range("a1:p20")) ' чтобы исключить "лишние" ячейки, если выделенный диапазон шире контролируемого
     If Target Is Nothing Then Exit Sub
     With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
         .SetText WorksheetFunction.Sum(Target)
         .PutInClipboard
     End With
End Sub
[/vba]
[p.s.]Worksheet_SelectionChange - это первое, что приходит в голову, но ИМХО, вычисление при каждом выделении - это нерациональное использование ресурсов... Лучше добавить пункт в меню по правому клику и пользоваться им при необходимости.[/p.s.]

UPD. Во вложенном файле реализация доп. пункта меню "Копировать сумму выделенных ячеек" (по правому клику на выделенных ячейках)
Можно поместить этот код в модуль книги в личную книгу макросов.

Автор - KSV
Дата добавления - 04.07.2015 в 11:01
palamart Дата: Четверг, 12.11.2015, 13:04 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel для Mac
KSV, добрый день.

Пытаюсь использовать это решение на Office для Mac (v15.15)

Открыл ваш файл, нажал "Включить макросы", но в контекстном меню нет пункта "Копировать сумму выделенных ячеек"
[moder]Читаем правила форума, создаем свою тему, эта тема закрыта![/moder]
К сообщению приложен файл: 0395807.jpg (65.6 Kb)


Сообщение отредактировал Manyasha - Четверг, 12.11.2015, 13:12
 
Ответить
СообщениеKSV, добрый день.

Пытаюсь использовать это решение на Office для Mac (v15.15)

Открыл ваш файл, нажал "Включить макросы", но в контекстном меню нет пункта "Копировать сумму выделенных ячеек"
[moder]Читаем правила форума, создаем свою тему, эта тема закрыта![/moder]

Автор - palamart
Дата добавления - 12.11.2015 в 13:04
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Копирование суммы выделенных ячеек (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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