Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi,
XL2003 I would like to Sum a named range of cells containing only True or False or blank. I tried: Application.WorksheetFunction.Sum(Range("MyRange") ) But this gave zero, even if 'True' was present in the range. And BTW, is there no SUM function in VBA? I think I can use AVERAGEA, then multiply by COUNTA(MyRange), but that seems a bit extreme. Regards - Dave. |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Boolean means true or false. I think you would need to count trues or count
falses. "Dave" wrote: Hi, XL2003 I would like to Sum a named range of cells containing only True or False or blank. I tried: Application.WorksheetFunction.Sum(Range("MyRange") ) But this gave zero, even if 'True' was present in the range. And BTW, is there no SUM function in VBA? I think I can use AVERAGEA, then multiply by COUNTA(MyRange), but that seems a bit extreme. Regards - Dave. |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
The conversion is killing you. Put TRUE in A1 and FALSE in A2 and run this:
Sub dural() MsgBox CInt(Range("A1").Value) MsgBox CInt(Range("A2").Value) MsgBox CInt(Range("A1").Value) + CInt(Range("A2").Value) End Sub to see what I mean. What is True on the worksheet may not be True in VBA. -- Gary''s Student - gsnu201001 "Dave" wrote: Hi, XL2003 I would like to Sum a named range of cells containing only True or False or blank. I tried: Application.WorksheetFunction.Sum(Range("MyRange") ) But this gave zero, even if 'True' was present in the range. And BTW, is there no SUM function in VBA? I think I can use AVERAGEA, then multiply by COUNTA(MyRange), but that seems a bit extreme. Regards - Dave. |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
On 2/22/2010 7:49 PM, Dave wrote:
Hi, XL2003 I would like to Sum a named range of cells containing only True or False or blank. I tried: Application.WorksheetFunction.Sum(Range("MyRange") ) But this gave zero, even if 'True' was present in the range. And BTW, is there no SUM function in VBA? I think I can use AVERAGEA, then multiply by COUNTA(MyRange), but that seems a bit extreme. Regards - Dave. Sounds like you want to "Count" One of a few examples... Sub Demo() Debug.Print WorksheetFunction.CountIf(Range("MyRange"), True) 'or.. Debug.Print WorksheetFunction.CountIf([MyRange], False) Debug.Print WorksheetFunction.CountIf([MyRange], "") End Sub = = = = = = = HTH :) Dana DeLouis |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi GS,
Thanks. So 'True' in VBA equates to -1. OK. I also found that: CInt(Range("A1").Value) + CInt(Range("A2").Value) and Range("A1") + Range("A2") both returned -1. So how do we SUM in VBA when there's lots of cells? Regards - Dave "Gary''s Student" wrote: The conversion is killing you. Put TRUE in A1 and FALSE in A2 and run this: Sub dural() MsgBox CInt(Range("A1").Value) MsgBox CInt(Range("A2").Value) MsgBox CInt(Range("A1").Value) + CInt(Range("A2").Value) End Sub to see what I mean. What is True on the worksheet may not be True in VBA. -- Gary''s Student - gsnu201001 "Dave" wrote: Hi, XL2003 I would like to Sum a named range of cells containing only True or False or blank. I tried: Application.WorksheetFunction.Sum(Range("MyRange") ) But this gave zero, even if 'True' was present in the range. And BTW, is there no SUM function in VBA? I think I can use AVERAGEA, then multiply by COUNTA(MyRange), but that seems a bit extreme. Regards - Dave. |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Dana,
Thanks. That works. But still puzzeled as to how we Sum a lot of cells in VBA Regards - Dave. "Dana DeLouis" wrote: On 2/22/2010 7:49 PM, Dave wrote: Hi, XL2003 I would like to Sum a named range of cells containing only True or False or blank. I tried: Application.WorksheetFunction.Sum(Range("MyRange") ) But this gave zero, even if 'True' was present in the range. And BTW, is there no SUM function in VBA? I think I can use AVERAGEA, then multiply by COUNTA(MyRange), but that seems a bit extreme. Regards - Dave. Sounds like you want to "Count" One of a few examples... Sub Demo() Debug.Print WorksheetFunction.CountIf(Range("MyRange"), True) 'or.. Debug.Print WorksheetFunction.CountIf([MyRange], False) Debug.Print WorksheetFunction.CountIf([MyRange], "") End Sub = = = = = = = HTH :) Dana DeLouis . |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
But still puzzeled as to how we Sum a lot of cells in VBA
Hi. Here's one way... Debug.Print WorksheetFunction.Sum(Range("A1:A10")) HTH Dana DeLouis On 2/22/2010 9:10 PM, Dave wrote: Hi Dana, Thanks. That works. But still puzzeled as to how we Sum a lot of cells in VBA Regards - Dave. "Dana DeLouis" wrote: On 2/22/2010 7:49 PM, Dave wrote: Hi, XL2003 I would like to Sum a named range of cells containing only True or False or blank. I tried: Application.WorksheetFunction.Sum(Range("MyRange") ) But this gave zero, even if 'True' was present in the range. And BTW, is there no SUM function in VBA? I think I can use AVERAGEA, then multiply by COUNTA(MyRange), but that seems a bit extreme. Regards - Dave. Sounds like you want to "Count" One of a few examples... Sub Demo() Debug.Print WorksheetFunction.CountIf(Range("MyRange"), True) 'or.. Debug.Print WorksheetFunction.CountIf([MyRange], False) Debug.Print WorksheetFunction.CountIf([MyRange], "") End Sub = = = = = = = HTH :) Dana DeLouis . -- = = = = = = = HTH :) Dana DeLouis |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Dana,
But when we have boolean entries, Range("A1")+Range("A2")+Range("A3") works, summing False's as 0's, and True's as -1's. But WorksheetFunction.Sum(Range("A1:A10")) does not seem to work with boolean entries, always returning 0. Dave. "Dana DeLouis" wrote: But still puzzeled as to how we Sum a lot of cells in VBA Hi. Here's one way... Debug.Print WorksheetFunction.Sum(Range("A1:A10")) HTH Dana DeLouis |
#9
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
But WorksheetFunction.Sum(Range("A1:A10")) does not seem to work with
boolean entries, always returning 0. Hi. Summing 'Boolean' entries doesn't make much sense compared to "Counting." However, to do so, I believe you need to first convert the boolean to a value so that 'Sum can work. Here's one way to Sum 'True as the value 1. Sub Demo() Dim x x = WorksheetFunction.SumProduct([--MyRange]) End Sub Just note that on a Worksheet, True is +1 I still think "Count" is what you want though :) = = = = = = = HTH :) Dana DeLouis On 2/22/2010 10:33 PM, Dave wrote: Hi Dana, But when we have boolean entries, Range("A1")+Range("A2")+Range("A3") works, summing False's as 0's, and True's as -1's. But WorksheetFunction.Sum(Range("A1:A10")) does not seem to work with boolean entries, always returning 0. Dave. "Dana DeLouis" wrote: But still puzzeled as to how we Sum a lot of cells in VBA Hi. Here's one way... Debug.Print WorksheetFunction.Sum(Range("A1:A10")) HTH Dana DeLouis |
#10
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Dana,
OK, I concede. Count it is. Dave. "Dana DeLouis" wrote: But WorksheetFunction.Sum(Range("A1:A10")) does not seem to work with boolean entries, always returning 0. Hi. Summing 'Boolean' entries doesn't make much sense compared to "Counting." However, to do so, I believe you need to first convert the boolean to a value so that 'Sum can work. Here's one way to Sum 'True as the value 1. Sub Demo() Dim x x = WorksheetFunction.SumProduct([--MyRange]) End Sub Just note that on a Worksheet, True is +1 I still think "Count" is what you want though :) = = = = = = = HTH :) Dana DeLouis On 2/22/2010 10:33 PM, Dave wrote: Hi Dana, But when we have boolean entries, Range("A1")+Range("A2")+Range("A3") works, summing False's as 0's, and True's as -1's. But WorksheetFunction.Sum(Range("A1:A10")) does not seem to work with boolean entries, always returning 0. Dave. "Dana DeLouis" wrote: But still puzzeled as to how we Sum a lot of cells in VBA Hi. Here's one way... Debug.Print WorksheetFunction.Sum(Range("A1:A10")) HTH Dana DeLouis . |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Boolean Math | Excel Worksheet Functions | |||
IF vs Boolean | Excel Discussion (Misc queries) | |||
More on Boolean | New Users to Excel | |||
VBA Boolean | Excel Discussion (Misc queries) | |||
Boolean masks | Excel Worksheet Functions |