Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I'm trying to write a VBA function to count the number of matches to two
criteria. In a worksheet I can use SUMPRODUCT(--(range1="value1"),--(range2="value2")) but I can't make it work in VBA. range1 and range2 and value1 are variables, value2 is a string constant. answer = Application.WorksheetFunction.SumProduct("--(" & range1 & "=""" & value1 & """)", "--(" & range2 & "=""value2"")") I am getting type mismatch errors. I suspect the problem is range1 and range2 ; on a worksheet they are in the form A2:A300 but in VBA they aren't. How to sort this out? Or is there a better method? |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() Dim sformula As String sformula = "SumProduct(--(" & range1.Address & "=""" & value1 & """)," & _ "--(" & range2.Address & "=""" & value2 & """))" answer = Evaluate(sformula) -- HTH RP (remove nothere from the email address if mailing direct) "Adrian" wrote in message ... I'm trying to write a VBA function to count the number of matches to two criteria. In a worksheet I can use SUMPRODUCT(--(range1="value1"),--(range2="value2")) but I can't make it work in VBA. range1 and range2 and value1 are variables, value2 is a string constant. answer = Application.WorksheetFunction.SumProduct("--(" & range1 & "=""" & value1 & """)", "--(" & range2 & "=""value2"")") I am getting type mismatch errors. I suspect the problem is range1 and range2 ; on a worksheet they are in the form A2:A300 but in VBA they aren't. How to sort this out? Or is there a better method? |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Array evaluation of this type is not supported in VBA. You have to use the
evaluate function to ask Excel to evaluate the formula for you: answer = Evaluate("SumProduct(--(" & range1.Address & "=""" & _ value1 & """),--(" & range2.Address & "=""value2"")") This will evaluate the activesheet using the array formula -- Regards, Tom Ogilvy "Adrian" wrote in message ... I'm trying to write a VBA function to count the number of matches to two criteria. In a worksheet I can use SUMPRODUCT(--(range1="value1"),--(range2="value2")) but I can't make it work in VBA. range1 and range2 and value1 are variables, value2 is a string constant. answer = Application.WorksheetFunction.SumProduct("--(" & range1 & "=""" & value1 & """)", "--(" & range2 & "=""value2"")") I am getting type mismatch errors. I suspect the problem is range1 and range2 ; on a worksheet they are in the form A2:A300 but in VBA they aren't. How to sort this out? Or is there a better method? |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Tom, and Bob,
Many thanks to you both. "Tom Ogilvy" wrote: Array evaluation of this type is not supported in VBA. You have to use the evaluate function to ask Excel to evaluate the formula for you: answer = Evaluate("SumProduct(--(" & range1.Address & "=""" & _ value1 & """),--(" & range2.Address & "=""value2"")") This will evaluate the activesheet using the array formula -- Regards, Tom Ogilvy "Adrian" wrote in message ... I'm trying to write a VBA function to count the number of matches to two criteria. In a worksheet I can use SUMPRODUCT(--(range1="value1"),--(range2="value2")) but I can't make it work in VBA. range1 and range2 and value1 are variables, value2 is a string constant. answer = Application.WorksheetFunction.SumProduct("--(" & range1 & "=""" & value1 & """)", "--(" & range2 & "=""value2"")") I am getting type mismatch errors. I suspect the problem is range1 and range2 ; on a worksheet they are in the form A2:A300 but in VBA they aren't. How to sort this out? Or is there a better method? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Count if two columns match different criteria | Excel Worksheet Functions | |||
Count how many criteria in a column match criteria in another colu | Excel Discussion (Misc queries) | |||
Match Criteria & Return Sequential Count | Excel Worksheet Functions | |||
Count entries in a range that match a certain criteria within datavalidation. | Excel Discussion (Misc queries) | |||
Count rows that match 3 sets of criteria? | Excel Worksheet Functions |