Function InsA2(a1, a2) 'функция возвращает 2-й аргумент увеличенный на 1
InsA2 = a2 + 1
End Function
' см. как увеличиваются значения В2, В3, В4 (на единицу)
New, выбираю пользовательскую функцию "ING", в аргументе "А" пишу 523 в аргументе "Б" пишу 245, получается в ячейке номер 523-245. Нужно, чтобы число в аргументе "Б" увеличивалось на единицу при автозаполнение каждой последующей ячейки.
New, работает. Вот только один момент, если я выбираю эту функцию в произвольной ячейке, к примеру A5 и в аргументе "А" пишу 523, а в аргументе "Б" 245, то в ячейке появляется 523-246, а мне нужно, чтобы первоначальное значение было как в аргументах, а увеличение на единицу только при автозаполнение. Допустим, указал я в аргументах пользовательской функции ячейки A5 данные: 523, 245. В ячейке получилось 523-245, дальше применяю автозаполнение до ячейки A6 и в ней число аргумента "Б" увеличивается на единицу и соответсвенно в ячейке A6 должно быть 523-246.
не знаю, как вам помочь, вот ещё вариант (добавил 3-й аргумент) Если вводите в ячейку А5 (т.е. в 5-ю строку, то 3-м аргументом указать номер строки - 5) Для ячейки А5 =ING(523;245;5)
Код
Function ING(А As Variant, Б As Variant, НомСтроки As Long) As String
ING = А & "-" & CDbl(Б) + (Application.Caller.Row - НомСтроки)
End Function
Ибрагим Белхороев, см.сообщение 4, там что увеличивается не второй аргумент или может быть не на единицу? или не в каждой последующей ячейке? что не так?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Ну, если только один из аргументов "привязать" к ячейкам листа:
Код
Function ING_2(ByVal A As Variant, ByVal B As Variant)
Dim R As Long
If TypeOf A Is Range Then
Set A = A.Cells(1)
R = A.Row
ElseIf TypeOf B Is Range Then
Set B = B.Cells(1)
R = B.Row
Else
ING_2 = CVErr(xlErrValue)
Exit Function
End If
ING_2 = CStr(A) & "-" & CStr(B + Application.ThisCell.Row - R)
End Function 'ING_2'
Ігор Гончаренко, увеличивается, но не так, как я имел в виду. Код в сообщение #4 сразу увеличивает значение второго аргумента, а мне нужно, чтобы при автозаполнение увеличивалось. Пример: Выбираю любую ячейку, пусть будет C7, в строке для формул пишу свою пользовательскую функцию, в ней указываю значение второго аргумента число 25, все, в ячейке C7 должно появится число 25, дальше применяю автозаполнение допустим до ячейки C9, в итоге в ячейках C7, C8, C9 будет: 25, 26, 27 соответственно. Вот результат, который мне необходим.
New, вариант подходит, просто неудобно, то что нужно указывать номер строки, хотелось бы, чтобы номер строки определялся автоматически. Спасибо вам за помощь.