Thread
:
Can I use AND like this
View Single Post
#
11
Posted to microsoft.public.excel.programming
D[_8_]
external usenet poster
Posts: 8
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 With Quote
D[_8_]
View Public Profile
Find all posts by D[_8_]