krosav4ig
Дата: Суббота, 31.05.2014, 04:32 |
Сообщение № 21
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация:
989
±
Замечаний:
0% ±
Excel 2007,2010,2013
[vba]Код
Function NewOrProlonged(ContragentColNum As Integer, SquareColNum As Integer) 'NewOrProlonged = Application.WorksheetFunction.SumProduct((Range(Cells(7, ContragentColNum), Cells(EntireRow.Row, ContragentColNum)) = Cells(EntireRow.Row, ContragentColNum)) * (Range(Cells(7, SquareColNum), Cells(EntireRow.Row, SquareColNum)) = Cells(EntireRow.Row, SquareColNum))) Dim rngContragent$, rngSquare$, crtContragent$, crtSquare$ With Application.Caller crtContragent = Cells(.Row, ContragentColNum).Address crtSquare = Cells(.Row, SquareColNum).Address rngContragent = Range(Cells(8, ContragentColNum), Cells(.Row - 1, _ ContragentColNum)).Address rngSquare = Range(Cells(8, SquareColNum), Cells(.Row - 1, _ SquareColNum)).Address End With NewOrProlonged = Evaluate("SumProduct((" & rngContragent & " = " & _ crtContragent & ")*(" & rngSquare & "=" & crtSquare & "))") 'NewOrProlonged = Evaluate("SumProduct((" & rngContragent & "=" & crtContragent _ & ")*(" & rngContragent & "<>"""")*(" & rngContragent & ">0)*(" & rngSquare & _ "=" & crtSquare & ")*(" & rngSquare & "<>"""")*(" & rngSquare & ">0))") End Function
[/vba]
[vba]Код
Function NewOrProlonged(ContragentColNum As Integer, SquareColNum As Integer) 'NewOrProlonged = Application.WorksheetFunction.SumProduct((Range(Cells(7, ContragentColNum), Cells(EntireRow.Row, ContragentColNum)) = Cells(EntireRow.Row, ContragentColNum)) * (Range(Cells(7, SquareColNum), Cells(EntireRow.Row, SquareColNum)) = Cells(EntireRow.Row, SquareColNum))) Dim rngContragent$, rngSquare$, crtContragent$, crtSquare$ With Application.Caller crtContragent = Cells(.Row, ContragentColNum).Address crtSquare = Cells(.Row, SquareColNum).Address rngContragent = Range(Cells(8, ContragentColNum), Cells(.Row - 1, _ ContragentColNum)).Address rngSquare = Range(Cells(8, SquareColNum), Cells(.Row - 1, _ SquareColNum)).Address End With NewOrProlonged = Evaluate("SumProduct((" & rngContragent & " = " & _ crtContragent & ")*(" & rngSquare & "=" & crtSquare & "))") 'NewOrProlonged = Evaluate("SumProduct((" & rngContragent & "=" & crtContragent _ & ")*(" & rngContragent & "<>"""")*(" & rngContragent & ">0)*(" & rngSquare & _ "=" & crtSquare & ")*(" & rngSquare & "<>"""")*(" & rngSquare & ">0))") End Function
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Суббота, 31.05.2014, 04:33
Ответить
Сообщение [vba]Код
Function NewOrProlonged(ContragentColNum As Integer, SquareColNum As Integer) 'NewOrProlonged = Application.WorksheetFunction.SumProduct((Range(Cells(7, ContragentColNum), Cells(EntireRow.Row, ContragentColNum)) = Cells(EntireRow.Row, ContragentColNum)) * (Range(Cells(7, SquareColNum), Cells(EntireRow.Row, SquareColNum)) = Cells(EntireRow.Row, SquareColNum))) Dim rngContragent$, rngSquare$, crtContragent$, crtSquare$ With Application.Caller crtContragent = Cells(.Row, ContragentColNum).Address crtSquare = Cells(.Row, SquareColNum).Address rngContragent = Range(Cells(8, ContragentColNum), Cells(.Row - 1, _ ContragentColNum)).Address rngSquare = Range(Cells(8, SquareColNum), Cells(.Row - 1, _ SquareColNum)).Address End With NewOrProlonged = Evaluate("SumProduct((" & rngContragent & " = " & _ crtContragent & ")*(" & rngSquare & "=" & crtSquare & "))") 'NewOrProlonged = Evaluate("SumProduct((" & rngContragent & "=" & crtContragent _ & ")*(" & rngContragent & "<>"""")*(" & rngContragent & ">0)*(" & rngSquare & _ "=" & crtSquare & ")*(" & rngSquare & "<>"""")*(" & rngSquare & ">0))") End Function
[/vba] Автор - krosav4ig Дата добавления - 31.05.2014 в 04:32
bygaga
Дата: Вторник, 03.06.2014, 10:20 |
Сообщение № 22
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация:
0
±
Замечаний:
0% ±
Excel 2003, 2007
krosav4ig , Спасибо! Идеальный вариант!
krosav4ig , Спасибо! Идеальный вариант!bygaga
Сообщение отредактировал bygaga - Вторник, 03.06.2014, 10:21
Ответить
Сообщение krosav4ig , Спасибо! Идеальный вариант!Автор - bygaga Дата добавления - 03.06.2014 в 10:20
bygaga
Дата: Вторник, 03.06.2014, 11:06 |
Сообщение № 23
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация:
0
±
Замечаний:
0% ±
Excel 2003, 2007
Вопрос на засыпку - почему в коде [vba]Код
Function NewOrProlonged(ContragentColNum As Integer, SquareColNum As Integer) Dim rngContragent$, rngSquare$, crtContragent$, crtSquare$ With Application.Caller crtContragent = Cells(.Row, ContragentColNum).Address crtSquare = Cells(.Row, SquareColNum).Address rngContragent = Range(Cells(7, ContragentColNum), Cells(.Row - 1, _ ContragentColNum)).Address rngSquare = Range(Cells(7, SquareColNum), Cells(.Row - 1, _ SquareColNum)).Address End With NewOrProlonged = Evaluate("SumProduct((" & rngContragent & " = " & _ crtContragent & ")*(" & rngSquare & "=" & crtSquare & "))") End Function
[/vba] crtContragent и crtSquare - понятно, это номер столбца, потому и тип переменной String ($) А вот переменные rngContragent rngSquare по сути Range? Почему в макросе они как String? Спасибо С уважением, Дима
Вопрос на засыпку - почему в коде [vba]Код
Function NewOrProlonged(ContragentColNum As Integer, SquareColNum As Integer) Dim rngContragent$, rngSquare$, crtContragent$, crtSquare$ With Application.Caller crtContragent = Cells(.Row, ContragentColNum).Address crtSquare = Cells(.Row, SquareColNum).Address rngContragent = Range(Cells(7, ContragentColNum), Cells(.Row - 1, _ ContragentColNum)).Address rngSquare = Range(Cells(7, SquareColNum), Cells(.Row - 1, _ SquareColNum)).Address End With NewOrProlonged = Evaluate("SumProduct((" & rngContragent & " = " & _ crtContragent & ")*(" & rngSquare & "=" & crtSquare & "))") End Function
[/vba] crtContragent и crtSquare - понятно, это номер столбца, потому и тип переменной String ($) А вот переменные rngContragent rngSquare по сути Range? Почему в макросе они как String? Спасибо С уважением, Дима bygaga
Ответить
Сообщение Вопрос на засыпку - почему в коде [vba]Код
Function NewOrProlonged(ContragentColNum As Integer, SquareColNum As Integer) Dim rngContragent$, rngSquare$, crtContragent$, crtSquare$ With Application.Caller crtContragent = Cells(.Row, ContragentColNum).Address crtSquare = Cells(.Row, SquareColNum).Address rngContragent = Range(Cells(7, ContragentColNum), Cells(.Row - 1, _ ContragentColNum)).Address rngSquare = Range(Cells(7, SquareColNum), Cells(.Row - 1, _ SquareColNum)).Address End With NewOrProlonged = Evaluate("SumProduct((" & rngContragent & " = " & _ crtContragent & ")*(" & rngSquare & "=" & crtSquare & "))") End Function
[/vba] crtContragent и crtSquare - понятно, это номер столбца, потому и тип переменной String ($) А вот переменные rngContragent rngSquare по сути Range? Почему в макросе они как String? Спасибо С уважением, Дима Автор - bygaga Дата добавления - 03.06.2014 в 11:06
Hugo
Дата: Вторник, 03.06.2014, 11:14 |
Сообщение № 24
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация:
707
±
Замечаний:
0% ±
2019
Потому что .Address!
excel@nxt.ru webmoney: E265281470651 Z422237915069
Ответить
Сообщение Потому что .Address! Автор - Hugo Дата добавления - 03.06.2014 в 11:14
bygaga
Дата: Вторник, 03.06.2014, 12:39 |
Сообщение № 25
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация:
0
±
Замечаний:
0% ±
Excel 2003, 2007
Hugo , Спасибо, буду учиться
Hugo , Спасибо, буду учиться bygaga
Ответить
Сообщение Hugo , Спасибо, буду учиться Автор - bygaga Дата добавления - 03.06.2014 в 12:39