Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7,247
Default Range missing its target area weirdly

They are different because the second approach results in an
offset equal to rSel from rSel. So if rSel is C3,
rSel(rSel.Cells(1,1))

is

rSel.Range("C3").Cells(1,1)
or E5.

The "C3" is not the absolute reference to cell C3, it is
*relative* to rSel.

--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com




"Konrad Viltersten" wrote in message
...
I have tried two different approaches to do the same
thing, i.e. flipping the bold format.

Approach #1
Set rSel = Selection
rSel.Cells(1, 1).Font.Bold = Not rSel.Cells(1, 1).Font.Bold

Approach #2
Set rSel = Selection
rSel.Range(rSel.Cells(1, 1), rSel.Cells(1, 1)).Font.Bold = _
Not rSel.Range(rSel.Cells(1, 1), rSel.Cells(1, 1)).Font.Bold

Now, i'd say they are equivalent. However, what happens
makes me a little bit confused. When my selection starts
from A1, both approaches work in exactly the same way.
As soon as i start my selection from, say, B2, i get the
following difference.
Approach #1
The top, leftmost element of the selection (here it's B2)
gets changed, as expected to.
Approach #2
The _second_ top, leftmost element of the selection (here
it's C3) gets changed, to my astonishment.

It wouldn't surprise me if it was a matter of defnition of
Range but as far as i can read the docs, there's nothing in
there regarding this behavior. Any comments?


--
Vänligen
Konrad
---------------------------------------------------

Sleep - thing used by ineffective people
as a substitute for coffee

Ambition - a poor excuse for not having
enough sence to be lazy
---------------------------------------------------



  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7,247
Default Range missing its target area weirdly

As an example, run code like

Debug.Print Range("C3").Range("C3").Address

This will display $E$5. The second C3 indicates the offset from
the first C3.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com





"Chip Pearson" wrote in message
...
They are different because the second approach results in an
offset equal to rSel from rSel. So if rSel is C3,
rSel(rSel.Cells(1,1))

is

rSel.Range("C3").Cells(1,1)
or E5.

The "C3" is not the absolute reference to cell C3, it is
*relative* to rSel.

--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com




"Konrad Viltersten" wrote in message
...
I have tried two different approaches to do the same
thing, i.e. flipping the bold format.

Approach #1
Set rSel = Selection
rSel.Cells(1, 1).Font.Bold = Not rSel.Cells(1, 1).Font.Bold

Approach #2
Set rSel = Selection
rSel.Range(rSel.Cells(1, 1), rSel.Cells(1, 1)).Font.Bold = _
Not rSel.Range(rSel.Cells(1, 1), rSel.Cells(1,
1)).Font.Bold

Now, i'd say they are equivalent. However, what happens
makes me a little bit confused. When my selection starts
from A1, both approaches work in exactly the same way.
As soon as i start my selection from, say, B2, i get the
following difference.
Approach #1
The top, leftmost element of the selection (here it's B2)
gets changed, as expected to.
Approach #2
The _second_ top, leftmost element of the selection (here
it's C3) gets changed, to my astonishment.

It wouldn't surprise me if it was a matter of defnition of
Range but as far as i can read the docs, there's nothing in
there regarding this behavior. Any comments?


--
Vänligen
Konrad
---------------------------------------------------

Sleep - thing used by ineffective people
as a substitute for coffee

Ambition - a poor excuse for not having
enough sence to be lazy
---------------------------------------------------





  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 26
Default Range missing its target area weirdly

I have tried two different approaches to do the same
thing, i.e. flipping the bold format.

Approach #1
Set rSel = Selection
rSel.Cells(1, 1).Font.Bold = Not rSel.Cells(1, 1).Font.Bold

Approach #2
Set rSel = Selection
rSel.Range(rSel.Cells(1, 1), rSel.Cells(1, 1)).Font.Bold = _
Not rSel.Range(rSel.Cells(1, 1), rSel.Cells(1, 1)).Font.Bold

Now, i'd say they are equivalent. However, what happens
makes me a little bit confused. When my selection starts
from A1, both approaches work in exactly the same way.
As soon as i start my selection from, say, B2, i get the
following difference.
Approach #1
The top, leftmost element of the selection (here it's B2)
gets changed, as expected to.
Approach #2
The _second_ top, leftmost element of the selection (here
it's C3) gets changed, to my astonishment.

It wouldn't surprise me if it was a matter of defnition of
Range but as far as i can read the docs, there's nothing in
there regarding this behavior. Any comments?


--
Vänligen
Konrad
---------------------------------------------------

Sleep - thing used by ineffective people
as a substitute for coffee

Ambition - a poor excuse for not having
enough sence to be lazy
---------------------------------------------------

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 747
Default Range missing its target area weirdly

The Range method returns a relative reference. If unqualified it defaults to
the active sheet and references are relative to the top-left cell - i.e.
relative to cell A1 and Range("C3") refers to cell C3. However, if you select
cells F5:G6 and specify Selection.Range("C3") it will return cell H7. In
other words, "C3" specifies an offset from the top-left corner of the
selection (F5) instead of from the top-left corner of the worksheet.

Greg

"Konrad Viltersten" wrote:

I have tried two different approaches to do the same
thing, i.e. flipping the bold format.

Approach #1
Set rSel = Selection
rSel.Cells(1, 1).Font.Bold = Not rSel.Cells(1, 1).Font.Bold

Approach #2
Set rSel = Selection
rSel.Range(rSel.Cells(1, 1), rSel.Cells(1, 1)).Font.Bold = _
Not rSel.Range(rSel.Cells(1, 1), rSel.Cells(1, 1)).Font.Bold

Now, i'd say they are equivalent. However, what happens
makes me a little bit confused. When my selection starts
from A1, both approaches work in exactly the same way.
As soon as i start my selection from, say, B2, i get the
following difference.
Approach #1
The top, leftmost element of the selection (here it's B2)
gets changed, as expected to.
Approach #2
The _second_ top, leftmost element of the selection (here
it's C3) gets changed, to my astonishment.

It wouldn't surprise me if it was a matter of defnition of
Range but as far as i can read the docs, there's nothing in
there regarding this behavior. Any comments?


--
Vänligen
Konrad
---------------------------------------------------

Sleep - thing used by ineffective people
as a substitute for coffee

Ambition - a poor excuse for not having
enough sence to be lazy
---------------------------------------------------


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Range missing its target area weirdly

Chip has some notes written by Alan Beban:
http://www.cpearson.com/excel/cells.htm

It may be an interesting read for you.



Konrad Viltersten wrote:

I have tried two different approaches to do the same
thing, i.e. flipping the bold format.

Approach #1
Set rSel = Selection
rSel.Cells(1, 1).Font.Bold = Not rSel.Cells(1, 1).Font.Bold

Approach #2
Set rSel = Selection
rSel.Range(rSel.Cells(1, 1), rSel.Cells(1, 1)).Font.Bold = _
Not rSel.Range(rSel.Cells(1, 1), rSel.Cells(1, 1)).Font.Bold

Now, i'd say they are equivalent. However, what happens
makes me a little bit confused. When my selection starts
from A1, both approaches work in exactly the same way.
As soon as i start my selection from, say, B2, i get the
following difference.
Approach #1
The top, leftmost element of the selection (here it's B2)
gets changed, as expected to.
Approach #2
The _second_ top, leftmost element of the selection (here
it's C3) gets changed, to my astonishment.

It wouldn't surprise me if it was a matter of defnition of
Range but as far as i can read the docs, there's nothing in
there regarding this behavior. Any comments?

--
Vänligen
Konrad
---------------------------------------------------

Sleep - thing used by ineffective people
as a substitute for coffee

Ambition - a poor excuse for not having
enough sence to be lazy
---------------------------------------------------


--

Dave Peterson


  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 26
Default Range missing its target area weirdly

The Range method returns a relative reference. If unqualified it
defaults to the active sheet and references are relative to the
top-left cell - i.e. relative to cell A1 and Range("C3") refers to
cell C3. However, if you select cells F5:G6 and specify
Selection.Range("C3") it will return cell H7. In other words, "C3"
specifies an offset from the top-left corner of the selection (F5)
instead of from the top-left corner of the worksheet.



Aha, got it. Thanks to all for the answers. Most helpfull.

--
Vänligen
Konrad
---------------------------------------------------

Sleep - thing used by ineffective people
as a substitute for coffee

Ambition - a poor excuse for not having
enough sence to be lazy
---------------------------------------------------

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
Adding area codes only to phone numbers missing an area code RC Excel Discussion (Misc queries) 5 May 3rd 23 05:06 PM
Target area in Excel chart with different color mkengel Charts and Charting in Excel 1 October 24th 07 11:00 PM
Target As Excel.Range or Target As Range Piranha[_5_] Excel Programming 2 June 3rd 05 03:49 PM
Ranges:Target in Worksheet_SelectionChange(ByVal Target As Range) Kevin McCartney Excel Programming 3 April 15th 05 01:51 PM
"find" and "filter" working weirdly weiin t via OfficeKB.com Excel Discussion (Misc queries) 1 February 18th 05 11:03 PM


All times are GMT +1. The time now is 02:04 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"