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

Вход

Регистрация

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

 

= Мир MS Excel/Пользовательская функция суммы - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Пользовательская функция суммы (Макросы/Sub)
Пользовательская функция суммы
Leojse Дата: Суббота, 26.07.2014, 15:46 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
Добрый день, уважаемые форумчане!
Есть пользовательская функция, которая выводит сумму через "/" (то есть суммирует отдельно как бы числитель и знаменатель). Действует функция в пределах активного листа и при не разрывном диапазоне. Хотелось бы поправить функцию таким образом, чтобы можно было суммировать ячейки с разных листов, а также, чтобы можно было задавать отдельные ячейки на суммирование. Скопировал код в модуль "Книга" и получилось просуммировать по листам, но дело в том, что очень хотелось бы пользоваться функцией из личной книги макросов.
К сообщению приложен файл: _2.xls (35.5 Kb)


Сообщение отредактировал Leojse - Суббота, 26.07.2014, 15:54
 
Ответить
СообщениеДобрый день, уважаемые форумчане!
Есть пользовательская функция, которая выводит сумму через "/" (то есть суммирует отдельно как бы числитель и знаменатель). Действует функция в пределах активного листа и при не разрывном диапазоне. Хотелось бы поправить функцию таким образом, чтобы можно было суммировать ячейки с разных листов, а также, чтобы можно было задавать отдельные ячейки на суммирование. Скопировал код в модуль "Книга" и получилось просуммировать по листам, но дело в том, что очень хотелось бы пользоваться функцией из личной книги макросов.

Автор - Leojse
Дата добавления - 26.07.2014 в 15:46
Leojse Дата: Суббота, 26.07.2014, 17:21 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
Немного подредактировал файл-пример.
К сообщению приложен файл: 5631987.xls (37.0 Kb)
 
Ответить
СообщениеНемного подредактировал файл-пример.

Автор - Leojse
Дата добавления - 26.07.2014 в 17:21
ikki Дата: Суббота, 26.07.2014, 18:16 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
[vba]
Код
Public Function sSum$(ParamArray a())
      Dim e, r, sumA#, sumB#, s$, pos&
      For Each e In a
          For Each r In e
              s = r.Value: pos = InStr(s, "/")
              If pos Then
                  sumA = sumA + CDbl(Mid$(s, 1, pos - 1))
                  sumB = sumB + CDbl(Mid$(s, pos + 1))
              End If
          Next
      Next
      sSum = CStr(Math.Round(sumA, 4)) & "/" & CStr(Math.Round(sumB, 4))
End Function
[/vba]
вызов с листа[vba]
Код
=sSum(B1:B5)
=sSum(B1;B12)
=sSum(B1:B5;B15)
=sSum(B5;Лист2!D1)
[/vba]
с трехмерными ссылками вида Лист2:Лист6!C15 не работает


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Суббота, 26.07.2014, 18:17
 
Ответить
Сообщение[vba]
Код
Public Function sSum$(ParamArray a())
      Dim e, r, sumA#, sumB#, s$, pos&
      For Each e In a
          For Each r In e
              s = r.Value: pos = InStr(s, "/")
              If pos Then
                  sumA = sumA + CDbl(Mid$(s, 1, pos - 1))
                  sumB = sumB + CDbl(Mid$(s, pos + 1))
              End If
          Next
      Next
      sSum = CStr(Math.Round(sumA, 4)) & "/" & CStr(Math.Round(sumB, 4))
End Function
[/vba]
вызов с листа[vba]
Код
=sSum(B1:B5)
=sSum(B1;B12)
=sSum(B1:B5;B15)
=sSum(B5;Лист2!D1)
[/vba]
с трехмерными ссылками вида Лист2:Лист6!C15 не работает

Автор - ikki
Дата добавления - 26.07.2014 в 18:16
Leojse Дата: Суббота, 26.07.2014, 18:45 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
ikki, огромное спасибо за помощь!
 
Ответить
Сообщениеikki, огромное спасибо за помощь!

Автор - Leojse
Дата добавления - 26.07.2014 в 18:45
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Пользовательская функция суммы (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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