ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Refer to Worksheet Ranges in Code (https://www.excelbanter.com/excel-programming/326351-refer-worksheet-ranges-code.html)

Andibevan[_2_]

Refer to Worksheet Ranges in Code
 
I have been reading the following item:-

http://msdn.microsoft.com/library/de...heetranges.asp

and it uses the following code:-

Dim ws As Excel.Worksheet = _
DirectCast(ThisWorkbook.Worksheets(1), Excel.Worksheet)
Dim rng, rng1, rng2 As Excel.Range

but when I try and use it, the first two lines show up in red in the VBA
editor.

Is there a reason for this? I am using Excel 2000, is there an add-in or
something I need to use the "DirectCast"?

Basically I am after a few pointers on how to refer to worksheet ranges from
code but am getting stuck.

Thanks

Andi



Tom Ogilvy

Refer to Worksheet Ranges in Code
 
That is VB.Net or C# information, not VBA information. It won't work in
Excel itself.

In VBA it would be something like:


Dim ws as Worksheet
Dim rng as Range, rng1 as Range, rng2 as Range

This sample code is searching one range on one sheet for values contained in
another range on another sheet (search rng2 for values in rng1)

Sub testme()

Dim FoundCell As Range
Dim myRng As Range
Dim whatToFind As String
Dim wks As Worksheet
Dim wks2 As Worksheet
Dim rng1 As Range, cell As Range, rng2 As Range
Dim fAddr As String
Dim sStr As String

Set wks2 = Worksheets("Sheet2")
Set rng2 = wks2.Range(wks2.Cells(1, "C"), wks2.Cells(1,
"C").End(xlDown)(2))
Set wks = Worksheets("sheet1")
Set rng1 = wks.Range(wks.Cells(1, 1), wks.Cells(1, 1).End(xlDown))
For Each cell In rng1
sStr = ""
fAddr = ""
whatToFind = cell.Value

Set FoundCell = rng2.Cells.Find(what:=whatToFind, _
after:=rng2(rng2.Count), LookIn:=xlValues, lookat:=xlPart, _
searchorder:=xlByRows, searchdirection:=xlNext, _
MatchCase:=False)


If Not FoundCell Is Nothing Then
fAddr = FoundCell.Address
Do
sStr = sStr & FoundCell.Offset(0, -2).Value & ";"
Set FoundCell = rng2.FindNext(FoundCell)
Loop While Not FoundCell.Address = fAddr
cell.Offset(0, 6).Value = Left(sStr, Len(sStr) - 1)
End If
Next cell

End Sub



--
Regards,
Tom Ogilvy


"Andibevan" wrote in message
...
I have been reading the following item:-


http://msdn.microsoft.com/library/de...heetranges.asp

and it uses the following code:-

Dim ws As Excel.Worksheet = _
DirectCast(ThisWorkbook.Worksheets(1), Excel.Worksheet)
Dim rng, rng1, rng2 As Excel.Range

but when I try and use it, the first two lines show up in red in the VBA
editor.

Is there a reason for this? I am using Excel 2000, is there an add-in or
something I need to use the "DirectCast"?

Basically I am after a few pointers on how to refer to worksheet ranges

from
code but am getting stuck.

Thanks

Andi





Andibevan[_2_]

Refer to Worksheet Ranges in Code
 
Thanks Tom,

I did think that I was looking at the wrong thing, but as it looks so
similar to VB it was hard to spot. Thanks also for your example code, it
looks helpful.

Ta

Andi

"Tom Ogilvy" wrote in message
...
That is VB.Net or C# information, not VBA information. It won't work in
Excel itself.

In VBA it would be something like:


Dim ws as Worksheet
Dim rng as Range, rng1 as Range, rng2 as Range

This sample code is searching one range on one sheet for values contained

in
another range on another sheet (search rng2 for values in rng1)

Sub testme()

Dim FoundCell As Range
Dim myRng As Range
Dim whatToFind As String
Dim wks As Worksheet
Dim wks2 As Worksheet
Dim rng1 As Range, cell As Range, rng2 As Range
Dim fAddr As String
Dim sStr As String

Set wks2 = Worksheets("Sheet2")
Set rng2 = wks2.Range(wks2.Cells(1, "C"), wks2.Cells(1,
"C").End(xlDown)(2))
Set wks = Worksheets("sheet1")
Set rng1 = wks.Range(wks.Cells(1, 1), wks.Cells(1, 1).End(xlDown))
For Each cell In rng1
sStr = ""
fAddr = ""
whatToFind = cell.Value

Set FoundCell = rng2.Cells.Find(what:=whatToFind, _
after:=rng2(rng2.Count), LookIn:=xlValues, lookat:=xlPart,

_
searchorder:=xlByRows, searchdirection:=xlNext, _
MatchCase:=False)


If Not FoundCell Is Nothing Then
fAddr = FoundCell.Address
Do
sStr = sStr & FoundCell.Offset(0, -2).Value & ";"
Set FoundCell = rng2.FindNext(FoundCell)
Loop While Not FoundCell.Address = fAddr
cell.Offset(0, 6).Value = Left(sStr, Len(sStr) - 1)
End If
Next cell

End Sub



--
Regards,
Tom Ogilvy


"Andibevan" wrote in

message
...
I have been reading the following item:-



http://msdn.microsoft.com/library/de...heetranges.asp

and it uses the following code:-

Dim ws As Excel.Worksheet = _
DirectCast(ThisWorkbook.Worksheets(1), Excel.Worksheet)
Dim rng, rng1, rng2 As Excel.Range

but when I try and use it, the first two lines show up in red in the VBA
editor.

Is there a reason for this? I am using Excel 2000, is there an add-in or
something I need to use the "DirectCast"?

Basically I am after a few pointers on how to refer to worksheet ranges

from
code but am getting stuck.

Thanks

Andi







Bob Phillips[_6_]

Refer to Worksheet Ranges in Code
 
Andi,

I have looked at teh article, and I cannot see anything remotely like what
you have posted.

To your question.

Dim ws As Worksheet

ws = ThisWorkbook.Worksheets(1)

Msgbox ws.Range("A1").Value


--

HTH

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


"Andibevan" wrote in message
...
I have been reading the following item:-


http://msdn.microsoft.com/library/de...heetranges.asp

and it uses the following code:-

Dim ws As Excel.Worksheet = _
DirectCast(ThisWorkbook.Worksheets(1), Excel.Worksheet)
Dim rng, rng1, rng2 As Excel.Range

but when I try and use it, the first two lines show up in red in the VBA
editor.

Is there a reason for this? I am using Excel 2000, is there an add-in or
something I need to use the "DirectCast"?

Basically I am after a few pointers on how to refer to worksheet ranges

from
code but am getting stuck.

Thanks

Andi





Tom Ogilvy

Refer to Worksheet Ranges in Code
 
I think Bob meant

Dim ws As Worksheet

Set ws = ThisWorkbook.Worksheets(1)

Msgbox ws.Range("A1").Value


--
Regards,
Tom Ogilvy



"Bob Phillips" wrote in message
...
Andi,

I have looked at teh article, and I cannot see anything remotely like what
you have posted.

To your question.

Dim ws As Worksheet

ws = ThisWorkbook.Worksheets(1)

Msgbox ws.Range("A1").Value


--

HTH

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


"Andibevan" wrote in

message
...
I have been reading the following item:-



http://msdn.microsoft.com/library/de...heetranges.asp

and it uses the following code:-

Dim ws As Excel.Worksheet = _
DirectCast(ThisWorkbook.Worksheets(1), Excel.Worksheet)
Dim rng, rng1, rng2 As Excel.Range

but when I try and use it, the first two lines show up in red in the VBA
editor.

Is there a reason for this? I am using Excel 2000, is there an add-in or
something I need to use the "DirectCast"?

Basically I am after a few pointers on how to refer to worksheet ranges

from
code but am getting stuck.

Thanks

Andi







Andibevan[_2_]

Refer to Worksheet Ranges in Code
 
Bob,

Sorry about that, I actually meant:-

http://msdn.microsoft.com/library/de...DirectCast.asp

Tom has now informed me that I was looking at stuff to do with VB.net -
finding out something as simple as what program language the document I was
reading related too seemed to be very tricky!

Thanks

Andy

"Bob Phillips" wrote in message
...
Andi,

I have looked at teh article, and I cannot see anything remotely like what
you have posted.

To your question.

Dim ws As Worksheet

ws = ThisWorkbook.Worksheets(1)

Msgbox ws.Range("A1").Value


--

HTH

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


"Andibevan" wrote in

message
...
I have been reading the following item:-



http://msdn.microsoft.com/library/de...heetranges.asp

and it uses the following code:-

Dim ws As Excel.Worksheet = _
DirectCast(ThisWorkbook.Worksheets(1), Excel.Worksheet)
Dim rng, rng1, rng2 As Excel.Range

but when I try and use it, the first two lines show up in red in the VBA
editor.

Is there a reason for this? I am using Excel 2000, is there an add-in or
something I need to use the "DirectCast"?

Basically I am after a few pointers on how to refer to worksheet ranges

from
code but am getting stuck.

Thanks

Andi







Bob Phillips[_6_]

Refer to Worksheet Ranges in Code
 
Thanks for the catch Tim.

Bob


"Tom Ogilvy" wrote in message
...
I think Bob meant

Dim ws As Worksheet

Set ws = ThisWorkbook.Worksheets(1)

Msgbox ws.Range("A1").Value


--
Regards,
Tom Ogilvy



"Bob Phillips" wrote in message
...
Andi,

I have looked at teh article, and I cannot see anything remotely like

what
you have posted.

To your question.

Dim ws As Worksheet

ws = ThisWorkbook.Worksheets(1)

Msgbox ws.Range("A1").Value


--

HTH

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


"Andibevan" wrote in

message
...
I have been reading the following item:-




http://msdn.microsoft.com/library/de...heetranges.asp

and it uses the following code:-

Dim ws As Excel.Worksheet = _
DirectCast(ThisWorkbook.Worksheets(1), Excel.Worksheet)
Dim rng, rng1, rng2 As Excel.Range

but when I try and use it, the first two lines show up in red in the

VBA
editor.

Is there a reason for this? I am using Excel 2000, is there an add-in

or
something I need to use the "DirectCast"?

Basically I am after a few pointers on how to refer to worksheet

ranges
from
code but am getting stuck.

Thanks

Andi









Tom Ogilvy

Refer to Worksheet Ranges in Code
 
At the top of the article:

MSDN Home MSDN Library Development Tools and Languages Visual
Studio .NET Visual Basic and Visual C# Reference Visual Basic
Language Visual Basic Language and Run-Time Reference Keywords A-E
Keywords

See the "Visual Studio .Net"

When microsoft talks about VB they now generally mean VB.Net.

--
Regards,
Tom Ogilvy

"Andibevan" wrote in message
...
Bob,

Sorry about that, I actually meant:-


http://msdn.microsoft.com/library/de...DirectCast.asp

Tom has now informed me that I was looking at stuff to do with VB.net -
finding out something as simple as what program language the document I

was
reading related too seemed to be very tricky!

Thanks

Andy

"Bob Phillips" wrote in message
...
Andi,

I have looked at teh article, and I cannot see anything remotely like

what
you have posted.

To your question.

Dim ws As Worksheet

ws = ThisWorkbook.Worksheets(1)

Msgbox ws.Range("A1").Value


--

HTH

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


"Andibevan" wrote in

message
...
I have been reading the following item:-




http://msdn.microsoft.com/library/de...heetranges.asp

and it uses the following code:-

Dim ws As Excel.Worksheet = _
DirectCast(ThisWorkbook.Worksheets(1), Excel.Worksheet)
Dim rng, rng1, rng2 As Excel.Range

but when I try and use it, the first two lines show up in red in the

VBA
editor.

Is there a reason for this? I am using Excel 2000, is there an add-in

or
something I need to use the "DirectCast"?

Basically I am after a few pointers on how to refer to worksheet

ranges
from
code but am getting stuck.

Thanks

Andi









Andibevan[_2_]

Refer to Worksheet Ranges in Code
 
Thanks Tom - as always, I am very grateful for your assistance.


"Tom Ogilvy" wrote in message
...
At the top of the article:

MSDN Home MSDN Library Development Tools and Languages Visual
Studio .NET Visual Basic and Visual C# Reference Visual Basic
Language Visual Basic Language and Run-Time Reference Keywords

A-E
Keywords

See the "Visual Studio .Net"

When microsoft talks about VB they now generally mean VB.Net.

--
Regards,
Tom Ogilvy

"Andibevan" wrote in

message
...
Bob,

Sorry about that, I actually meant:-



http://msdn.microsoft.com/library/de...DirectCast.asp

Tom has now informed me that I was looking at stuff to do with VB.net -
finding out something as simple as what program language the document I

was
reading related too seemed to be very tricky!

Thanks

Andy

"Bob Phillips" wrote in message
...
Andi,

I have looked at teh article, and I cannot see anything remotely like

what
you have posted.

To your question.

Dim ws As Worksheet

ws = ThisWorkbook.Worksheets(1)

Msgbox ws.Range("A1").Value


--

HTH

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


"Andibevan" wrote in

message
...
I have been reading the following item:-





http://msdn.microsoft.com/library/de...heetranges.asp

and it uses the following code:-

Dim ws As Excel.Worksheet = _
DirectCast(ThisWorkbook.Worksheets(1), Excel.Worksheet)
Dim rng, rng1, rng2 As Excel.Range

but when I try and use it, the first two lines show up in red in the

VBA
editor.

Is there a reason for this? I am using Excel 2000, is there an

add-in
or
something I need to use the "DirectCast"?

Basically I am after a few pointers on how to refer to worksheet

ranges
from
code but am getting stuck.

Thanks

Andi












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

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