Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8
Default 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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default 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




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8
Default 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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8
Default 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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default 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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8
Default 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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8
Default 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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,071
Default 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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8
Default 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
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT +1. The time now is 08:58 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"