Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Can I use AND like this
like a bitwise and,
I've definded constants const_add 1, const_sub 2, const_div 4 ,, 8 , 10 , 20 etc if CheckBox_Add.Value = True Then lChecks = lChecks And const_Add End If If CheckBox_Sub.Value = True Then lChecks = lChecks And const_Sub End If I'd like pass lChecks to a function and have that function do something like if lChecks and const_add = true then ...... It all looks ok but my lines like lChecks = lChecks And const_Add don't set lChecks to anything Thanks |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Can I use AND like this
To set the bit, add the constant to lChecks
lChecks = lChecks + const_Sub From the immediate window: lchecks = lchecks + 4 + 8 ? lchecks and 2 0 ? lchecks and 4 4 ? lchecks and 8 8 ? lchecks and 16 0 ? lchecks and 1 0 -- Regards, Tom Ogilvy "D" wrote in message ... like a bitwise and, I've definded constants const_add 1, const_sub 2, const_div 4 ,, 8 , 10 , 20 etc if CheckBox_Add.Value = True Then lChecks = lChecks And const_Add End If If CheckBox_Sub.Value = True Then lChecks = lChecks And const_Sub End If I'd like pass lChecks to a function and have that function do something like if lChecks and const_add = true then ..... It all looks ok but my lines like lChecks = lChecks And const_Add don't set lChecks to anything Thanks |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Can I use AND like this
You need to Or not And. An alternative would be to add the values as
in lChecks=lChecks + Const_Add -- Regards, Tushar Mehta www.tushar-mehta.com Excel, PowerPoint, and VBA add-ins, tutorials Custom MS Office productivity solutions In article , says... like a bitwise and, I've definded constants const_add 1, const_sub 2, const_div 4 ,, 8 , 10 , 20 etc if CheckBox_Add.Value = True Then lChecks = lChecks And const_Add End If If CheckBox_Sub.Value = True Then lChecks = lChecks And const_Sub End If I'd like pass lChecks to a function and have that function do something like if lChecks and const_add = true then ..... It all looks ok but my lines like lChecks = lChecks And const_Add don't set lChecks to anything Thanks |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Can I use AND like this
Thanks Tom that worked perfectly.
Happy New Year Best Regards Dave "Tom Ogilvy" wrote in message ... To set the bit, add the constant to lChecks lChecks = lChecks + const_Sub From the immediate window: lchecks = lchecks + 4 + 8 ? lchecks and 2 0 ? lchecks and 4 4 ? lchecks and 8 8 ? lchecks and 16 0 ? lchecks and 1 0 -- Regards, Tom Ogilvy "D" wrote in message ... like a bitwise and, I've definded constants const_add 1, const_sub 2, const_div 4 ,, 8 , 10 , 20 etc if CheckBox_Add.Value = True Then lChecks = lChecks And const_Add End If If CheckBox_Sub.Value = True Then lChecks = lChecks And const_Sub End If I'd like pass lChecks to a function and have that function do something like if lChecks and const_add = true then ..... It all looks ok but my lines like lChecks = lChecks And const_Add don't set lChecks to anything Thanks |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
Can I use AND like this
Actually it's not working like I thought
lchecks = lchecks + 2 ?lchecks and 2 0 "Tom Ogilvy" wrote in message ... To set the bit, add the constant to lChecks lChecks = lChecks + const_Sub From the immediate window: lchecks = lchecks + 4 + 8 ? lchecks and 2 0 ? lchecks and 4 4 ? lchecks and 8 8 ? lchecks and 16 0 ? lchecks and 1 0 -- Regards, Tom Ogilvy "D" wrote in message ... like a bitwise and, I've definded constants const_add 1, const_sub 2, const_div 4 ,, 8 , 10 , 20 etc if CheckBox_Add.Value = True Then lChecks = lChecks And const_Add End If If CheckBox_Sub.Value = True Then lChecks = lChecks And const_Sub End If I'd like pass lChecks to a function and have that function do something like if lChecks and const_add = true then ..... It all looks ok but my lines like lChecks = lChecks And const_Add don't set lChecks to anything Thanks |
#7
Posted to microsoft.public.excel.programming
|
|||
|
|||
Can I use AND like this
lchecks = lchecks + 2
?lchecks and 2 2 Works for me. I assume you are testing this in the immediate window. -- Regards, Tom Ogilvy "D" wrote in message ... Actually it's not working like I thought lchecks = lchecks + 2 ?lchecks and 2 0 "Tom Ogilvy" wrote in message ... To set the bit, add the constant to lChecks lChecks = lChecks + const_Sub From the immediate window: lchecks = lchecks + 4 + 8 ? lchecks and 2 0 ? lchecks and 4 4 ? lchecks and 8 8 ? lchecks and 16 0 ? lchecks and 1 0 -- Regards, Tom Ogilvy "D" wrote in message ... like a bitwise and, I've definded constants const_add 1, const_sub 2, const_div 4 ,, 8 , 10 , 20 etc if CheckBox_Add.Value = True Then lChecks = lChecks And const_Add End If If CheckBox_Sub.Value = True Then lChecks = lChecks And const_Sub End If I'd like pass lChecks to a function and have that function do something like if lChecks and const_add = true then ..... It all looks ok but my lines like lChecks = lChecks And const_Add don't set lChecks to anything Thanks |
#8
Posted to microsoft.public.excel.programming
|
|||
|
|||
Can I use AND like this
I am using longs
here look at this Private Sub CommandButton1_Click() Dim const_One As Long Dim const_Two As Long Dim const_Four As Long Dim const_Eight As Long Dim const_Ten As Long Dim const_Twenty As Long const_Ten = 10 const_Two = 2 Dim lchecks As Long lchecks = lchecks + const_Ten If (lchecks And const_Two) = const_Two Then MsgBox ("it failed") Else MsgBox ("it worked") End If End Sub the result of the IF line is 2 where I think it should be 0. Thanks "Tushar Mehta" wrote in message ... How have you declard lchecks? It works just fine for me for types byte, long, and variant. If lchecks is a boolean, VBA treats the assignment as setting it to true, i.e., -1 or all bits on or &HFFFF. The result is that all tests (lchecks and {whatever}) will be true. So, in no case can I duplicate your problem of getting zero. -- Regards, Tushar Mehta www.tushar-mehta.com Excel, PowerPoint, and VBA add-ins, tutorials Custom MS Office productivity solutions In article , says... Actually it's not working like I thought lchecks = lchecks + 2 ?lchecks and 2 0 "Tom Ogilvy" wrote in message ... To set the bit, add the constant to lChecks lChecks = lChecks + const_Sub From the immediate window: lchecks = lchecks + 4 + 8 ? lchecks and 2 0 ? lchecks and 4 4 ? lchecks and 8 8 ? lchecks and 16 0 ? lchecks and 1 0 -- Regards, Tom Ogilvy "D" wrote in message ... like a bitwise and, I've definded constants const_add 1, const_sub 2, const_div 4 ,, 8 , 10 , 20 etc if CheckBox_Add.Value = True Then lChecks = lChecks And const_Add End If If CheckBox_Sub.Value = True Then lChecks = lChecks And const_Sub End If I'd like pass lChecks to a function and have that function do something like if lChecks and const_add = true then ..... It all looks ok but my lines like lChecks = lChecks And const_Add don't set lChecks to anything Thanks |
#9
Posted to microsoft.public.excel.programming
|
|||
|
|||
Can I use AND like this
I was in the immediate window but I was changing the values of the first
line without hitting enter so it wasn't taking effect. My bad. Sorry "Tom Ogilvy" wrote in message ... lchecks = lchecks + 2 ?lchecks and 2 2 Works for me. I assume you are testing this in the immediate window. -- Regards, Tom Ogilvy "D" wrote in message ... Actually it's not working like I thought lchecks = lchecks + 2 ?lchecks and 2 0 "Tom Ogilvy" wrote in message ... To set the bit, add the constant to lChecks lChecks = lChecks + const_Sub From the immediate window: lchecks = lchecks + 4 + 8 ? lchecks and 2 0 ? lchecks and 4 4 ? lchecks and 8 8 ? lchecks and 16 0 ? lchecks and 1 0 -- Regards, Tom Ogilvy "D" wrote in message ... like a bitwise and, I've definded constants const_add 1, const_sub 2, const_div 4 ,, 8 , 10 , 20 etc if CheckBox_Add.Value = True Then lChecks = lChecks And const_Add End If If CheckBox_Sub.Value = True Then lChecks = lChecks And const_Sub End If I'd like pass lChecks to a function and have that function do something like if lChecks and const_add = true then ..... It all looks ok but my lines like lChecks = lChecks And const_Add don't set lChecks to anything Thanks |
#10
Posted to microsoft.public.excel.programming
|
|||
|
|||
Can I use AND like this
The reason you are getting two will become obvious once you write 10 in
binary! {g} If I were in your shoes, I would stick to powers of 2. (1, 2, 4, 8, 16, etc., and, of course, zero) -- Regards, Tushar Mehta www.tushar-mehta.com Excel, PowerPoint, and VBA add-ins, tutorials Custom MS Office productivity solutions In article , says... I am using longs here look at this Private Sub CommandButton1_Click() Dim const_One As Long Dim const_Two As Long Dim const_Four As Long Dim const_Eight As Long Dim const_Ten As Long Dim const_Twenty As Long const_Ten = 10 const_Two = 2 Dim lchecks As Long lchecks = lchecks + const_Ten If (lchecks And const_Two) = const_Two Then MsgBox ("it failed") Else MsgBox ("it worked") End If End Sub the result of the IF line is 2 where I think it should be 0. Thanks "Tushar Mehta" wrote in message ... How have you declard lchecks? It works just fine for me for types byte, long, and variant. If lchecks is a boolean, VBA treats the assignment as setting it to true, i.e., -1 or all bits on or &HFFFF. The result is that all tests (lchecks and {whatever}) will be true. So, in no case can I duplicate your problem of getting zero. -- Regards, Tushar Mehta www.tushar-mehta.com Excel, PowerPoint, and VBA add-ins, tutorials Custom MS Office productivity solutions In article , says... Actually it's not working like I thought lchecks = lchecks + 2 ?lchecks and 2 0 "Tom Ogilvy" wrote in message ... To set the bit, add the constant to lChecks lChecks = lChecks + const_Sub From the immediate window: lchecks = lchecks + 4 + 8 ? lchecks and 2 0 ? lchecks and 4 4 ? lchecks and 8 8 ? lchecks and 16 0 ? lchecks and 1 0 -- Regards, Tom Ogilvy "D" wrote in message ... like a bitwise and, I've definded constants const_add 1, const_sub 2, const_div 4 ,, 8 , 10 , 20 etc if CheckBox_Add.Value = True Then lChecks = lChecks And const_Add End If If CheckBox_Sub.Value = True Then lChecks = lChecks And const_Sub End If I'd like pass lChecks to a function and have that function do something like if lChecks and const_add = true then ..... It all looks ok but my lines like lChecks = lChecks And const_Add don't set lChecks to anything Thanks |
#11
Posted to microsoft.public.excel.programming
|
|||
|
|||
Can I use AND like this
ahh I see now. I must of been thinking 10 in hexidecimal.
Thanks "Tushar Mehta" wrote in message ... The reason you are getting two will become obvious once you write 10 in binary! {g} If I were in your shoes, I would stick to powers of 2. (1, 2, 4, 8, 16, etc., and, of course, zero) -- Regards, Tushar Mehta www.tushar-mehta.com Excel, PowerPoint, and VBA add-ins, tutorials Custom MS Office productivity solutions In article , says... I am using longs here look at this Private Sub CommandButton1_Click() Dim const_One As Long Dim const_Two As Long Dim const_Four As Long Dim const_Eight As Long Dim const_Ten As Long Dim const_Twenty As Long const_Ten = 10 const_Two = 2 Dim lchecks As Long lchecks = lchecks + const_Ten If (lchecks And const_Two) = const_Two Then MsgBox ("it failed") Else MsgBox ("it worked") End If End Sub the result of the IF line is 2 where I think it should be 0. Thanks "Tushar Mehta" wrote in message ... How have you declard lchecks? It works just fine for me for types byte, long, and variant. If lchecks is a boolean, VBA treats the assignment as setting it to true, i.e., -1 or all bits on or &HFFFF. The result is that all tests (lchecks and {whatever}) will be true. So, in no case can I duplicate your problem of getting zero. -- Regards, Tushar Mehta www.tushar-mehta.com Excel, PowerPoint, and VBA add-ins, tutorials Custom MS Office productivity solutions In article , says... Actually it's not working like I thought lchecks = lchecks + 2 ?lchecks and 2 0 "Tom Ogilvy" wrote in message ... To set the bit, add the constant to lChecks lChecks = lChecks + const_Sub From the immediate window: lchecks = lchecks + 4 + 8 ? lchecks and 2 0 ? lchecks and 4 4 ? lchecks and 8 8 ? lchecks and 16 0 ? lchecks and 1 0 -- Regards, Tom Ogilvy "D" wrote in message ... like a bitwise and, I've definded constants const_add 1, const_sub 2, const_div 4 ,, 8 , 10 , 20 etc if CheckBox_Add.Value = True Then lChecks = lChecks And const_Add End If If CheckBox_Sub.Value = True Then lChecks = lChecks And const_Sub End If I'd like pass lChecks to a function and have that function do something like if lChecks and const_add = true then ..... It all looks ok but my lines like lChecks = lChecks And const_Add don't set lChecks to anything Thanks |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|