Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10
Default If Statement Variations

Hia!

How is the day going friends!

I am stuck into another crazy programming thing!!!

3 questions;

I know normal VBA if statements and Excel or SQL ifs. However;

What is if (something) ---- why do you need bracket?
What is if xxxxx = 0& ----- why do you need €œ&€
What is #if ----- why that €œ#€

Could someone explain?

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7,247
Default If Statement Variations


What is if (something) ---- why do you need bracket?


You don't need the outer enclosing parentheses, but they are harmless
if included. Some programmers use them as a matter of personal coding
style, but they are not required to do so.

What is if xxxxx = 0& ----- why do you need “&”


In this context, the & character forces the compiler to use a Long
integer data type (32-bit signed) rather than a short Integer (16-bit
signed). It is required for some calculations whose inputs and result
may fit in a short integer but whose intermediate calculations
overflow a short Integer. For example, consider the following code:

Dim X As Integer
Dim Y As Integer
X = 30000
Y = (X * 2) / 2
Debug.Print Y

Here, the inputs and output of the calculation are within the bounds
of a short Integer (+/- 32K), but the intermediate calculation (X*2)
overflows a short integer and the code will blow up with an overflow
error. If you change the line of code to

Y = (X * 2&) / 2

the & character forces the compiler to use a Long integer when
calculating X*2, so there is no overflow error.


What is #if ----- why that “#”


The # character is for "conditional compilation". This allows you to
exclude blocks of the code from being compiled. In the end, it isn't
really any different than commenting out the same block of code, but
is simpler. For example, when you are developing and debugging a
program, you can set a DEBUG flag with the #CONST statement and then
test that flag to compile or not compile the block of code. This makes
it simpler to switch to and from debug and testing and production
code. E.g,

#CONST DEBUG = True
' lots of code
#If DEBUG = True Then
' diagnostic and trace code
#End If

Simply changing the single #CONST line can cause many debug and trace
blocks of code to be excluded in the production version. Much simpler
than try to remember which lines of code should be commented at
release.


Cordially,
Chip Pearson
Microsoft MVP 1998 - 2010
Pearson Software Consulting, LLC
www.cpearson.com
[email on web site]




On Tue, 12 Jan 2010 14:20:01 -0800, Nedan Nedzatra
wrote:

Hia!

How is the day going friends!

I am stuck into another crazy programming thing!!!

3 questions;

I know normal VBA if statements and Excel or SQL ifs. However;

What is if (something) ---- why do you need bracket?
What is if xxxxx = 0& ----- why do you need “&”
What is #if ----- why that “#”

Could someone explain?

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10
Default If Statement Variations

Hia!

Chip!

Thank You.

I am Ok with the first 2 now. Could you please extend the 3rd as you
explained the second? I do not think I could get assistance on this from VBA
help; I am trying

"Chip Pearson" wrote:


What is if (something) ---- why do you need bracket?


You don't need the outer enclosing parentheses, but they are harmless
if included. Some programmers use them as a matter of personal coding
style, but they are not required to do so.

What is if xxxxx = 0& ----- why do you need €œ&€


In this context, the & character forces the compiler to use a Long
integer data type (32-bit signed) rather than a short Integer (16-bit
signed). It is required for some calculations whose inputs and result
may fit in a short integer but whose intermediate calculations
overflow a short Integer. For example, consider the following code:

Dim X As Integer
Dim Y As Integer
X = 30000
Y = (X * 2) / 2
Debug.Print Y

Here, the inputs and output of the calculation are within the bounds
of a short Integer (+/- 32K), but the intermediate calculation (X*2)
overflows a short integer and the code will blow up with an overflow
error. If you change the line of code to

Y = (X * 2&) / 2

the & character forces the compiler to use a Long integer when
calculating X*2, so there is no overflow error.


What is #if ----- why that €œ#€


The # character is for "conditional compilation". This allows you to
exclude blocks of the code from being compiled. In the end, it isn't
really any different than commenting out the same block of code, but
is simpler. For example, when you are developing and debugging a
program, you can set a DEBUG flag with the #CONST statement and then
test that flag to compile or not compile the block of code. This makes
it simpler to switch to and from debug and testing and production
code. E.g,

#CONST DEBUG = True
' lots of code
#If DEBUG = True Then
' diagnostic and trace code
#End If

Simply changing the single #CONST line can cause many debug and trace
blocks of code to be excluded in the production version. Much simpler
than try to remember which lines of code should be commented at
release.


Cordially,
Chip Pearson
Microsoft MVP 1998 - 2010
Pearson Software Consulting, LLC
www.cpearson.com
[email on web site]




On Tue, 12 Jan 2010 14:20:01 -0800, Nedan Nedzatra
wrote:

Hia!

How is the day going friends!

I am stuck into another crazy programming thing!!!

3 questions;

I know normal VBA if statements and Excel or SQL ifs. However;

What is if (something) ---- why do you need bracket?
What is if xxxxx = 0& ----- why do you need €œ&€
What is #if ----- why that €œ#€

Could someone explain?

.

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,934
Default If Statement Variations

To get to the help files for the conditional If statement, type #If in any
code window and, with the text cursor in or next to it, press F1. You can
also get to the help files for the conditional Const statement by typing
#Const in any code window and, with the text cursor in or next to it, press
F1. Don't forget to click the Example links so you can see the example of
these keywords in use.

--
Rick (MVP - Excel)


"Nedan Nedzatra" wrote in message
...
Hia!

Chip!

Thank You.

I am Ok with the first 2 now. Could you please extend the 3rd as you
explained the second? I do not think I could get assistance on this from
VBA
help; I am trying

"Chip Pearson" wrote:


What is if (something) ---- why do you need bracket?


You don't need the outer enclosing parentheses, but they are harmless
if included. Some programmers use them as a matter of personal coding
style, but they are not required to do so.

What is if xxxxx = 0& ----- why do you need €œ&€


In this context, the & character forces the compiler to use a Long
integer data type (32-bit signed) rather than a short Integer (16-bit
signed). It is required for some calculations whose inputs and result
may fit in a short integer but whose intermediate calculations
overflow a short Integer. For example, consider the following code:

Dim X As Integer
Dim Y As Integer
X = 30000
Y = (X * 2) / 2
Debug.Print Y

Here, the inputs and output of the calculation are within the bounds
of a short Integer (+/- 32K), but the intermediate calculation (X*2)
overflows a short integer and the code will blow up with an overflow
error. If you change the line of code to

Y = (X * 2&) / 2

the & character forces the compiler to use a Long integer when
calculating X*2, so there is no overflow error.


What is #if ----- why that €œ#€


The # character is for "conditional compilation". This allows you to
exclude blocks of the code from being compiled. In the end, it isn't
really any different than commenting out the same block of code, but
is simpler. For example, when you are developing and debugging a
program, you can set a DEBUG flag with the #CONST statement and then
test that flag to compile or not compile the block of code. This makes
it simpler to switch to and from debug and testing and production
code. E.g,

#CONST DEBUG = True
' lots of code
#If DEBUG = True Then
' diagnostic and trace code
#End If

Simply changing the single #CONST line can cause many debug and trace
blocks of code to be excluded in the production version. Much simpler
than try to remember which lines of code should be commented at
release.


Cordially,
Chip Pearson
Microsoft MVP 1998 - 2010
Pearson Software Consulting, LLC
www.cpearson.com
[email on web site]




On Tue, 12 Jan 2010 14:20:01 -0800, Nedan Nedzatra
wrote:

Hia!

How is the day going friends!

I am stuck into another crazy programming thing!!!

3 questions;

I know normal VBA if statements and Excel or SQL ifs. However;

What is if (something) ---- why do you need bracket?
What is if xxxxx = 0& ----- why do you need €œ&€
What is #if ----- why that €œ#€

Could someone explain?

.


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10
Default If Statement Variations

Hia!

Rick!

Thanks.

I think now I am OK with #If but still I may be forming wrong ideas about
#Const;

Last night I saw a set of codes from that I understand #Const is turned off
that is if it is set to "False" then the code execution takes a short cut
without going through the #if block. As Chip said I can turn it on for my
work and turn it off when I give it to customer.

Do I make sense...

Then I saw #Const Debugversion = 1 ....

Is that meant for #If Debugversion then.....(1 just stand for true)

Then I saw #Const Debug_ = True ...

It is used with #If Debug_ then....

If I am saying something wrong please give a warning;

Thank You.


"Rick Rothstein" wrote:

To get to the help files for the conditional If statement, type #If in any
code window and, with the text cursor in or next to it, press F1. You can
also get to the help files for the conditional Const statement by typing
#Const in any code window and, with the text cursor in or next to it, press
F1. Don't forget to click the Example links so you can see the example of
these keywords in use.

--
Rick (MVP - Excel)


"Nedan Nedzatra" wrote in message
...
Hia!

Chip!

Thank You.

I am Ok with the first 2 now. Could you please extend the 3rd as you
explained the second? I do not think I could get assistance on this from
VBA
help; I am trying

"Chip Pearson" wrote:


What is if (something) ---- why do you need bracket?

You don't need the outer enclosing parentheses, but they are harmless
if included. Some programmers use them as a matter of personal coding
style, but they are not required to do so.

What is if xxxxx = 0& ----- why do you need €œ&€

In this context, the & character forces the compiler to use a Long
integer data type (32-bit signed) rather than a short Integer (16-bit
signed). It is required for some calculations whose inputs and result
may fit in a short integer but whose intermediate calculations
overflow a short Integer. For example, consider the following code:

Dim X As Integer
Dim Y As Integer
X = 30000
Y = (X * 2) / 2
Debug.Print Y

Here, the inputs and output of the calculation are within the bounds
of a short Integer (+/- 32K), but the intermediate calculation (X*2)
overflows a short integer and the code will blow up with an overflow
error. If you change the line of code to

Y = (X * 2&) / 2

the & character forces the compiler to use a Long integer when
calculating X*2, so there is no overflow error.


What is #if ----- why that €œ#€

The # character is for "conditional compilation". This allows you to
exclude blocks of the code from being compiled. In the end, it isn't
really any different than commenting out the same block of code, but
is simpler. For example, when you are developing and debugging a
program, you can set a DEBUG flag with the #CONST statement and then
test that flag to compile or not compile the block of code. This makes
it simpler to switch to and from debug and testing and production
code. E.g,

#CONST DEBUG = True
' lots of code
#If DEBUG = True Then
' diagnostic and trace code
#End If

Simply changing the single #CONST line can cause many debug and trace
blocks of code to be excluded in the production version. Much simpler
than try to remember which lines of code should be commented at
release.


Cordially,
Chip Pearson
Microsoft MVP 1998 - 2010
Pearson Software Consulting, LLC
www.cpearson.com
[email on web site]




On Tue, 12 Jan 2010 14:20:01 -0800, Nedan Nedzatra
wrote:

Hia!

How is the day going friends!

I am stuck into another crazy programming thing!!!

3 questions;

I know normal VBA if statements and Excel or SQL ifs. However;

What is if (something) ---- why do you need bracket?
What is if xxxxx = 0& ----- why do you need €œ&€
What is #if ----- why that €œ#€

Could someone explain?
.


.



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,934
Default If Statement Variations

Let's see if this helps. Constants defined by a #Const statement can only be
seen by a #If statement block and not by normal code.

So, if you have this statement in your (General)(Declaration) section of
your code window...

#Const CompilerConstant As Long = 123

and then try to use this in normal code, you won't see the assigned value.
For example...

If CompilerConstant = 123 Then
MsgBox "Yes"
Else
MsgBox "No"
End If

This statement will **not** display the "Yes" MessageBox because a normal If
statement (that is, an If statement without a # sign) is not aware of the
#Const assignment. However, just add the # signs...

#If CompilerConstant = 123 Then
MsgBox "Yes"
#Else
MsgBox "No"
#End If

and now the "Yes" MessageBox is displayed.

If you use an Option Explicit statement so that you are warned about
undeclared variables, VB will help keep you straight on this (if you tried
to use CompilerConstant in normal code, you would get "Variable not defined"
warning); however, if you don't use an Option Explicit statement, you can
easily make mistakes when misusing #Const constants because you will not get
the warning and VB will just create a variable named CompilerConstant and
default it to a value of 0 (yes, you can have a #Const and a variable both
with the same name).

--
Rick (MVP - Excel)


"Nedan Nedzatra" wrote in message
...
Hia!

Rick!

Thanks.

I think now I am OK with #If but still I may be forming wrong ideas about
#Const;

Last night I saw a set of codes from that I understand #Const is turned
off
that is if it is set to "False" then the code execution takes a short cut
without going through the #if block. As Chip said I can turn it on for my
work and turn it off when I give it to customer.

Do I make sense...

Then I saw #Const Debugversion = 1 ....

Is that meant for #If Debugversion then.....(1 just stand for true)

Then I saw #Const Debug_ = True ...

It is used with #If Debug_ then....

If I am saying something wrong please give a warning;

Thank You.


"Rick Rothstein" wrote:

To get to the help files for the conditional If statement, type #If in
any
code window and, with the text cursor in or next to it, press F1. You can
also get to the help files for the conditional Const statement by typing
#Const in any code window and, with the text cursor in or next to it,
press
F1. Don't forget to click the Example links so you can see the example of
these keywords in use.

--
Rick (MVP - Excel)


"Nedan Nedzatra" wrote in
message
...
Hia!

Chip!

Thank You.

I am Ok with the first 2 now. Could you please extend the 3rd as you
explained the second? I do not think I could get assistance on this
from
VBA
help; I am trying

"Chip Pearson" wrote:


What is if (something) ---- why do you need bracket?

You don't need the outer enclosing parentheses, but they are harmless
if included. Some programmers use them as a matter of personal coding
style, but they are not required to do so.

What is if xxxxx = 0& ----- why do you need €œ&€

In this context, the & character forces the compiler to use a Long
integer data type (32-bit signed) rather than a short Integer (16-bit
signed). It is required for some calculations whose inputs and result
may fit in a short integer but whose intermediate calculations
overflow a short Integer. For example, consider the following code:

Dim X As Integer
Dim Y As Integer
X = 30000
Y = (X * 2) / 2
Debug.Print Y

Here, the inputs and output of the calculation are within the bounds
of a short Integer (+/- 32K), but the intermediate calculation (X*2)
overflows a short integer and the code will blow up with an overflow
error. If you change the line of code to

Y = (X * 2&) / 2

the & character forces the compiler to use a Long integer when
calculating X*2, so there is no overflow error.


What is #if ----- why that €œ#€

The # character is for "conditional compilation". This allows you to
exclude blocks of the code from being compiled. In the end, it isn't
really any different than commenting out the same block of code, but
is simpler. For example, when you are developing and debugging a
program, you can set a DEBUG flag with the #CONST statement and then
test that flag to compile or not compile the block of code. This makes
it simpler to switch to and from debug and testing and production
code. E.g,

#CONST DEBUG = True
' lots of code
#If DEBUG = True Then
' diagnostic and trace code
#End If

Simply changing the single #CONST line can cause many debug and trace
blocks of code to be excluded in the production version. Much simpler
than try to remember which lines of code should be commented at
release.


Cordially,
Chip Pearson
Microsoft MVP 1998 - 2010
Pearson Software Consulting, LLC
www.cpearson.com
[email on web site]




On Tue, 12 Jan 2010 14:20:01 -0800, Nedan Nedzatra
wrote:

Hia!

How is the day going friends!

I am stuck into another crazy programming thing!!!

3 questions;

I know normal VBA if statements and Excel or SQL ifs. However;

What is if (something) ---- why do you need bracket?
What is if xxxxx = 0& ----- why do you need €œ&€
What is #if ----- why that €œ#€

Could someone explain?
.


.


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


Similar Threads
Thread Thread Starter Forum Replies Last Post
matching 1 to 1 and 1 with variations... srmyers1 Excel Worksheet Functions 3 November 6th 09 05:46 PM
Many possible variations art Excel Worksheet Functions 0 May 7th 09 11:07 PM
Searching: Many variations of one word J@Y Excel Programming 0 July 25th 07 02:56 PM
Variations on Sumif EG Excel Worksheet Functions 3 April 23rd 07 03:14 PM
number variations aint much cop Excel Discussion (Misc queries) 3 July 16th 05 01:40 PM


All times are GMT +1. The time now is 06:04 AM.

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"