ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Counting blanks in range using VBA Offset (https://www.excelbanter.com/excel-programming/337249-counting-blanks-range-using-vba-offset.html)

ExcelMonkey

Counting blanks in range using VBA Offset
 
I know how to define a range using Excel's Offset function (OFFSET(Rows,
Columns, Height, Width))

But how do I do it using the VBA Offset function. It only includes
(OFFSET(Rows, Columns)).

I am trying to count the blank cells betwee rows 2 and rows 65236 on a
sheet. Row 2 is named PasteStartCell. I think the use below does not define
a range between row 2 and row 65536. It simply defines row 65536 as I am
offsetting row 2 by 65535 additional rows. How do I make it refer to the
range itself. Note I do not what to select the range and it cannot include
row 1

Numblanks =
Application.WorksheetFunction.CountBlank(Range(Pas teStartCell.Offset(65535,0)))

Thanks

K Dales[_2_]

Counting blanks in range using VBA Offset
 
Try this (immediate pane) to see how it works:
? Range("A1:B2").Offset(3,3).Range(Cells(1,1),Cells( 5,5)).Address
--
- K Dales


"ExcelMonkey" wrote:

I know how to define a range using Excel's Offset function (OFFSET(Rows,
Columns, Height, Width))

But how do I do it using the VBA Offset function. It only includes
(OFFSET(Rows, Columns)).

I am trying to count the blank cells betwee rows 2 and rows 65236 on a
sheet. Row 2 is named PasteStartCell. I think the use below does not define
a range between row 2 and row 65536. It simply defines row 65536 as I am
offsetting row 2 by 65535 additional rows. How do I make it refer to the
range itself. Note I do not what to select the range and it cannot include
row 1

Numblanks =
Application.WorksheetFunction.CountBlank(Range(Pas teStartCell.Offset(65535,0)))

Thanks


Tom Ogilvy

Counting blanks in range using VBA Offset
 
You can't offset 65535 rows from row 2 since offset is zero based.

? range("A2").Offset(65534,0).Address
$A$65536


What you want is resize

Numblanks =
Application.WorksheetFunction.CountBlank(Range(Pas teStartCell.Resize(65535,1
)))

--
Regards,
Tom Ogilvy


"ExcelMonkey" wrote in message
...
I know how to define a range using Excel's Offset function (OFFSET(Rows,
Columns, Height, Width))

But how do I do it using the VBA Offset function. It only includes
(OFFSET(Rows, Columns)).

I am trying to count the blank cells betwee rows 2 and rows 65236 on a
sheet. Row 2 is named PasteStartCell. I think the use below does not

define
a range between row 2 and row 65536. It simply defines row 65536 as I am
offsetting row 2 by 65535 additional rows. How do I make it refer to the
range itself. Note I do not what to select the range and it cannot

include
row 1

Numblanks =

Application.WorksheetFunction.CountBlank(Range(Pas teStartCell.Offset(65535,0
)))

Thanks




Bob Phillips[_6_]

Counting blanks in range using VBA Offset
 


--

HTH

RP
(remove nothere from the email address if mailing direct)


"ExcelMonkey" wrote in message
...
I know how to define a range using Excel's Offset function (OFFSET(Rows,
Columns, Height, Width))

But how do I do it using the VBA Offset function. It only includes
(OFFSET(Rows, Columns)).

I am trying to count the blank cells betwee rows 2 and rows 65236 on a
sheet. Row 2 is named PasteStartCell. I think the use below does not

define
a range between row 2 and row 65536. It simply defines row 65536 as I am
offsetting row 2 by 65535 additional rows. How do I make it refer to the
range itself. Note I do not what to select the range and it cannot

include
row 1

Numblanks =

Application.WorksheetFunction.CountBlank(Range(Pas teStartCell.Offset(65535,0
)))

Thanks




Bob Phillips[_6_]

Counting blanks in range using VBA Offset
 

Range("A1").Resize(rows,columns).Name = "myRange"

--

HTH

RP
(remove nothere from the email address if mailing direct)


"ExcelMonkey" wrote in message
...
I know how to define a range using Excel's Offset function (OFFSET(Rows,
Columns, Height, Width))

But how do I do it using the VBA Offset function. It only includes
(OFFSET(Rows, Columns)).

I am trying to count the blank cells betwee rows 2 and rows 65236 on a
sheet. Row 2 is named PasteStartCell. I think the use below does not

define
a range between row 2 and row 65536. It simply defines row 65536 as I am
offsetting row 2 by 65535 additional rows. How do I make it refer to the
range itself. Note I do not what to select the range and it cannot

include
row 1

Numblanks =

Application.WorksheetFunction.CountBlank(Range(Pas teStartCell.Offset(65535,0
)))

Thanks




ExcelMonkey

Counting blanks in range using VBA Offset
 
But does resize permanently change the range behind the name PastCellStart?
I use this name elsewhere in my code and do not want to change the range
definition behind that name. If it does, I will not be able to use it.



"Tom Ogilvy" wrote:

You can't offset 65535 rows from row 2 since offset is zero based.

? range("A2").Offset(65534,0).Address
$A$65536


What you want is resize

Numblanks =
Application.WorksheetFunction.CountBlank(Range(Pas teStartCell.Resize(65535,1
)))

--
Regards,
Tom Ogilvy


"ExcelMonkey" wrote in message
...
I know how to define a range using Excel's Offset function (OFFSET(Rows,
Columns, Height, Width))

But how do I do it using the VBA Offset function. It only includes
(OFFSET(Rows, Columns)).

I am trying to count the blank cells betwee rows 2 and rows 65236 on a
sheet. Row 2 is named PasteStartCell. I think the use below does not

define
a range between row 2 and row 65536. It simply defines row 65536 as I am
offsetting row 2 by 65535 additional rows. How do I make it refer to the
range itself. Note I do not what to select the range and it cannot

include
row 1

Numblanks =

Application.WorksheetFunction.CountBlank(Range(Pas teStartCell.Offset(65535,0
)))

Thanks





ExcelMonkey

Counting blanks in range using VBA Offset
 
So is what I really want:

Application.WorksheetFunction.CountBlank(Workbooks (AuditShtName).Range("B2:B65536"))

I think I was getting obsessed with using the named range itself. The range
is not that meaningful except that it exists in the first row of the column I
want to count blanks in. As I do not want to include the first row anyway, I
guess it means I should just not use that named cell as a point of reference.

"ExcelMonkey" wrote:

But does resize permanently change the range behind the name PastCellStart?
I use this name elsewhere in my code and do not want to change the range
definition behind that name. If it does, I will not be able to use it.



"Tom Ogilvy" wrote:

You can't offset 65535 rows from row 2 since offset is zero based.

? range("A2").Offset(65534,0).Address
$A$65536


What you want is resize

Numblanks =
Application.WorksheetFunction.CountBlank(Range(Pas teStartCell.Resize(65535,1
)))

--
Regards,
Tom Ogilvy


"ExcelMonkey" wrote in message
...
I know how to define a range using Excel's Offset function (OFFSET(Rows,
Columns, Height, Width))

But how do I do it using the VBA Offset function. It only includes
(OFFSET(Rows, Columns)).

I am trying to count the blank cells betwee rows 2 and rows 65236 on a
sheet. Row 2 is named PasteStartCell. I think the use below does not

define
a range between row 2 and row 65536. It simply defines row 65536 as I am
offsetting row 2 by 65535 additional rows. How do I make it refer to the
range itself. Note I do not what to select the range and it cannot

include
row 1

Numblanks =

Application.WorksheetFunction.CountBlank(Range(Pas teStartCell.Offset(65535,0
)))

Thanks





Tom Ogilvy

Counting blanks in range using VBA Offset
 
No, resize does not do that. If you have done

Insert=Name=Define
Name: = PasteStartCell
Refersto: whatever

then this will not change the definition of PasteStartCell - it will just
use it as an anchor:

Numblanks =
Application.WorksheetFunction.CountBlank(Range("Pa steStartCell").Offset(6553
5,1))

would be a single column from row 2 to row 65536

if you want the entire row

Numblanks =
Application.WorksheetFunction.CountBlank(Range("Pa steStartCell" _
).Offset(65535,1).EntireRow)





"ExcelMonkey" wrote in message
...
But does resize permanently change the range behind the name

PastCellStart?
I use this name elsewhere in my code and do not want to change the range
definition behind that name. If it does, I will not be able to use it.



"Tom Ogilvy" wrote:

You can't offset 65535 rows from row 2 since offset is zero based.

? range("A2").Offset(65534,0).Address
$A$65536


What you want is resize

Numblanks =

Application.WorksheetFunction.CountBlank(Range(Pas teStartCell.Resize(65535,1
)))

--
Regards,
Tom Ogilvy


"ExcelMonkey" wrote in message
...
I know how to define a range using Excel's Offset function

(OFFSET(Rows,
Columns, Height, Width))

But how do I do it using the VBA Offset function. It only includes
(OFFSET(Rows, Columns)).

I am trying to count the blank cells betwee rows 2 and rows 65236 on a
sheet. Row 2 is named PasteStartCell. I think the use below does not

define
a range between row 2 and row 65536. It simply defines row 65536 as I

am
offsetting row 2 by 65535 additional rows. How do I make it refer to

the
range itself. Note I do not what to select the range and it cannot

include
row 1

Numblanks =


Application.WorksheetFunction.CountBlank(Range(Pas teStartCell.Offset(65535,0
)))

Thanks








All times are GMT +1. The time now is 05:16 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com