Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
This is about selecting multiple ranges in Excel using ctrl.
Say you click on A1, hold ctrl and click on A2, next A3, you have 3 cells selected. But if you accidentally click a second time on e.g. A2, Selection.Cells.Count returns 4 and if you loop through the elements within the Cells-collection, A2 is twice in it. Is there a way to obtain all discrete cells from a range? I tried with SpecialCells(xlCellTypeVisible) but no success. tia, Chris |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks a lot, Dave. I already found a solution looping through all
cells from the selection and storing unique cell addresses in an array. But your (last) approach is a lot faster so I implemented it. Great! Chris Dave Peterson wrote in message ... Under light testing: MsgBox Intersect(Selection, Selection).Cells.Count & " : in(sel,sel)" worked ok I ran this macro after selecting a bunch of overlapping multicolumn and multirow areas in one selection and broke it real good. MsgBox Selection.Cells.Count & " : selection" MsgBox Intersect(Selection, Selection).Cells.Count & " : in(sel,sel)" MsgBox Intersect(Rows, Selection).Cells.Count & " : in(rows,sel)" MsgBox Intersect(Rows, Columns, Selection).Cells.Count & " : in(rows,cols,sel)" This might be slower, but I think I'd trust it to get the count: Dim myRng As Range Dim myCell As Range For Each myCell In Selection.Cells If myRng Is Nothing Then Set myRng = myCell Else If Intersect(myRng, myCell) Is Nothing Then Set myRng = Union(myRng, myCell) Else 'do nothing, already there End If End If Next myCell MsgBox myRng.Cells.Count & " : MyRng" chris wrote: This is about selecting multiple ranges in Excel using ctrl. Say you click on A1, hold ctrl and click on A2, next A3, you have 3 cells selected. But if you accidentally click a second time on e.g. A2, Selection.Cells.Count returns 4 and if you loop through the elements within the Cells-collection, A2 is twice in it. Is there a way to obtain all discrete cells from a range? I tried with SpecialCells(xlCellTypeVisible) but no success. tia, Chris |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Isolate UNIQUE combination of Z cells from a range N that adds up | Excel Worksheet Functions | |||
How to make Ctrl-C, ctrl-V work in Office 2007 | Excel Discussion (Misc queries) | |||
Excel 2007: Ctrl+PgUp or Ctrl+PgDn with Protected Sheets | Excel Discussion (Misc queries) | |||
Is there a macro which adds selected/highlighted cells? | Excel Worksheet Functions | |||
How do I control to which cells a user adds data? | Excel Worksheet Functions |