Добрый день, уважаемые форумчане! Есть пользовательская функция, которая выводит сумму через "/" (то есть суммирует отдельно как бы числитель и знаменатель). Действует функция в пределах активного листа и при не разрывном диапазоне. Хотелось бы поправить функцию таким образом, чтобы можно было суммировать ячейки с разных листов, а также, чтобы можно было задавать отдельные ячейки на суммирование. Скопировал код в модуль "Книга" и получилось просуммировать по листам, но дело в том, что очень хотелось бы пользоваться функцией из личной книги макросов.
Добрый день, уважаемые форумчане! Есть пользовательская функция, которая выводит сумму через "/" (то есть суммирует отдельно как бы числитель и знаменатель). Действует функция в пределах активного листа и при не разрывном диапазоне. Хотелось бы поправить функцию таким образом, чтобы можно было суммировать ячейки с разных листов, а также, чтобы можно было задавать отдельные ячейки на суммирование. Скопировал код в модуль "Книга" и получилось просуммировать по листам, но дело в том, что очень хотелось бы пользоваться функцией из личной книги макросов.Leojse
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] с трехмерными ссылками вида Лист2:Лист6!C15 не работает
[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