Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 08.12.2011, 18:21   #1
ilyha93
Пользователь
 
Регистрация: 08.12.2011
Сообщений: 29
Восклицание Как создать функцию?

Значения диапазона, модуль которых больше заданного числа, разделить на заданное
число, остальные значения оставить без изменений. Поместить новый диапазон снизу
от выделенного диапазона.
ilyha93 вне форума
Старый 08.12.2011, 18:53   #2
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Именно функцию?
Процедура не подойдёт?
Формулу массива не все знают как вводить.
Проще создать процедуру, а часть вычислений вынести в функции
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума
Старый 08.12.2011, 18:57   #3
ilyha93
Пользователь
 
Регистрация: 08.12.2011
Сообщений: 29
По умолчанию

На основе значений выделенного диапазона сформировать значения нового диапазона по указанному в задании
ilyha93 вне форума
Старый 08.12.2011, 18:58   #4
ilyha93
Пользователь
 
Регистрация: 08.12.2011
Сообщений: 29
По умолчанию

скорее вы правы
ilyha93 вне форума
Старый 08.12.2011, 18:59   #5
ilyha93
Пользователь
 
Регистрация: 08.12.2011
Сообщений: 29
По умолчанию

На основе значений выделенного диапазона сформировать значения нового диапазона по указанному в задании
Значения диапазона, модуль которых больше заданного числа, разделить на заданное
число, остальные значения оставить без изменений. Поместить новый диапазон снизу
от выделенного диапазона.
ilyha93 вне форума
Старый 08.12.2011, 19:01   #6
ilyha93
Пользователь
 
Регистрация: 08.12.2011
Сообщений: 29
По умолчанию

да процедуру нужно
ilyha93 вне форума
Старый 08.12.2011, 19:10   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Так?

Код:
Option Explicit

Sub tt()
ttt 2, 3
End Sub

Sub ttt(x, y)
    Dim a(), i&, ii&
    a = Selection.Value
    For i = 1 To UBound(a, 1)
        For ii = 1 To UBound(a, 2)
            If a(i, ii) Mod x = 0 Then
                a(i, ii) = a(i, ii) / y
            End If
        Next
    Next
    Selection.Offset(Selection.Rows.Count + 1).Value = a
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума
Старый 08.12.2011, 19:16   #8
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

с массивом и функцией:
Код:
Dim T
Dim N
Dim M()
Private Sub CommandButton1_Click()
Dim R, C
Randomize
'считывание в массив
M = Range(Cells(1, 1), _
Cells(ActiveSheet.Cells.Find("*", , , , xlByRows, xlPrevious).Row, _
ActiveSheet.Cells.Find("*", , , , xlByColumns, xlPrevious).Column))

'запрос числа
T = InputBox("Введите заданное число", "Запрос числа", Int(40 * Rnd + 10))
If T = "" Then Exit Sub

N = Val(T)
For R = 1 To UBound(M, 1)
    For C = 1 To UBound(M, 2)
        M(R, C) = VOPR(M(R, C), N) ' вызов функции рассчёта
Next C, R
'выгрузка результата
Range(Cells(UBound(M, 1) + 2, 1), Cells(2 * UBound(M, 1) + 1, UBound(M, 2))) = M

End Sub

Function VOPR(A, B)
VOPR = IIf(Abs(A) > B, A / B, A)
End Function
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума
Старый 08.12.2011, 19:19   #9
ilyha93
Пользователь
 
Регистрация: 08.12.2011
Сообщений: 29
По умолчанию

а если только процедуру? программа так же будет выглядеть или нет?
ilyha93 вне форума
Старый 08.12.2011, 19:25   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Что-то я там с модулем не то сделал Ну это легко исправить...
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 08.12.2011 в 19:29.
Hugo121 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать функцию, которая возвращает результат - строку типа ansistring. atg C++ Builder 2 28.10.2009 18:20
Как создать функцию с переменным кол-во параметров? VintProg Общие вопросы Delphi 12 11.08.2009 12:49
Как создать через редактор Visual Basic функцию в Excel Dima007 Microsoft Office Excel 2 04.11.2008 20:04
Как создать процедуру и функцию? Absent Общие вопросы Delphi 1 18.11.2007 17:36