ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Dim As Range Object (https://www.excelbanter.com/excel-programming/441474-dim-range-object.html)

Billy Leung[_3_]

Dim As Range Object
 
Hi,

I am writing a macro to call another sub. One of the argument that I pass to
the other sub is a range object. I just found that if the range has content,
value of the variable will become to the value of the range. In my case, if
the range("A4") store a string "ABC", then the variable PasteAt="ABC". This
will result in error when the other sub is going to paste data of recordset
at a specific range. Can you tell me how to solve this problem? Your help
will be appreciated.

The following is my coding.


Sub main()
Dim Server As String, Database As String, SQLcommand As String, PasteAt As
Range
Server = "SBS-2003"
Database = "Data-03"
Set PasteAt = Range("A4")
....
....
Call GetData(Server, Database, SQLcommand, PasteAt)
....
....
End Sub

Sub GetData(Svr As String, Db As String, SqlCmd As String, Pste As Range)
....
....
End Sub


Billy




ozgrid.com

Dim As Range Object
 
What value should your range Object store if NOT the Cell you Set it to?



--
Regards
Dave Hawley
www.ozgrid.com
"Billy Leung" wrote in message
...
Hi,

I am writing a macro to call another sub. One of the argument that I pass
to the other sub is a range object. I just found that if the range has
content, value of the variable will become to the value of the range. In
my case, if the range("A4") store a string "ABC", then the variable
PasteAt="ABC". This will result in error when the other sub is going to
paste data of recordset at a specific range. Can you tell me how to solve
this problem? Your help will be appreciated.

The following is my coding.


Sub main()
Dim Server As String, Database As String, SQLcommand As String, PasteAt As
Range
Server = "SBS-2003"
Database = "Data-03"
Set PasteAt = Range("A4")
...
...
Call GetData(Server, Database, SQLcommand, PasteAt)
...
...
End Sub

Sub GetData(Svr As String, Db As String, SqlCmd As String, Pste As Range)
...
...
End Sub


Billy




Billy Leung[_3_]

Dim As Range Object
 
Hi Dave,
Thanks for your prompt response. In my case, I want to pass the "location"
to the other sub. The "location" means where I would like to paste the
recordset. If the range("A4") is empty, the macro run perfectly. (By the
way, if I type ?PasteAt in immediate windows, it doesn't show anything. Is
that normal?). Should I have to clear the content of range("A4") before I
set PasteAT?

Billy

"ozgrid.com" wrote in message
...
What value should your range Object store if NOT the Cell you Set it to?



--
Regards
Dave Hawley
www.ozgrid.com
"Billy Leung" wrote in message
...
Hi,

I am writing a macro to call another sub. One of the argument that I pass
to the other sub is a range object. I just found that if the range has
content, value of the variable will become to the value of the range. In
my case, if the range("A4") store a string "ABC", then the variable
PasteAt="ABC". This will result in error when the other sub is going to
paste data of recordset at a specific range. Can you tell me how to solve
this problem? Your help will be appreciated.

The following is my coding.


Sub main()
Dim Server As String, Database As String, SQLcommand As String, PasteAt
As Range
Server = "SBS-2003"
Database = "Data-03"
Set PasteAt = Range("A4")
...
...
Call GetData(Server, Database, SQLcommand, PasteAt)
...
...
End Sub

Sub GetData(Svr As String, Db As String, SqlCmd As String, Pste As Range)
...
...
End Sub


Billy







ozgrid.com

Dim As Range Object
 
Why not clear the Range before passing the Range Object?

Or use;
Set PasteAt =Cells(Rows.Count,"A").End(XlUp)(2,1)



--
Regards
Dave Hawley
www.ozgrid.com
"Billy Leung" wrote in message
...
Hi Dave,
Thanks for your prompt response. In my case, I want to pass the "location"
to the other sub. The "location" means where I would like to paste the
recordset. If the range("A4") is empty, the macro run perfectly. (By the
way, if I type ?PasteAt in immediate windows, it doesn't show anything. Is
that normal?). Should I have to clear the content of range("A4") before I
set PasteAT?

Billy

"ozgrid.com" wrote in message
...
What value should your range Object store if NOT the Cell you Set it to?



--
Regards
Dave Hawley
www.ozgrid.com
"Billy Leung" wrote in message
...
Hi,

I am writing a macro to call another sub. One of the argument that I
pass to the other sub is a range object. I just found that if the range
has content, value of the variable will become to the value of the
range. In my case, if the range("A4") store a string "ABC", then the
variable PasteAt="ABC". This will result in error when the other sub is
going to paste data of recordset at a specific range. Can you tell me
how to solve this problem? Your help will be appreciated.

The following is my coding.


Sub main()
Dim Server As String, Database As String, SQLcommand As String, PasteAt
As Range
Server = "SBS-2003"
Database = "Data-03"
Set PasteAt = Range("A4")
...
...
Call GetData(Server, Database, SQLcommand, PasteAt)
...
...
End Sub

Sub GetData(Svr As String, Db As String, SqlCmd As String, Pste As
Range)
...
...
End Sub


Billy








Billy Leung[_3_]

Dim As Range Object
 
Hi Dave,
In my case, yes, I can clear the range first. But for arguement sake, if I
need to maintain the value but need to pass the range object, what should I
do?

(the second option you offer is going to the last cell of the sheet. am I
correct?)

Billy

"ozgrid.com" wrote in message
...
Why not clear the Range before passing the Range Object?

Or use;
Set PasteAt =Cells(Rows.Count,"A").End(XlUp)(2,1)



--
Regards
Dave Hawley
www.ozgrid.com
"Billy Leung" wrote in message
...
Hi Dave,
Thanks for your prompt response. In my case, I want to pass the
"location" to the other sub. The "location" means where I would like to
paste the recordset. If the range("A4") is empty, the macro run
perfectly. (By the way, if I type ?PasteAt in immediate windows, it
doesn't show anything. Is that normal?). Should I have to clear the
content of range("A4") before I set PasteAT?

Billy

"ozgrid.com" wrote in message
...
What value should your range Object store if NOT the Cell you Set it to?



--
Regards
Dave Hawley
www.ozgrid.com
"Billy Leung" wrote in message
...
Hi,

I am writing a macro to call another sub. One of the argument that I
pass to the other sub is a range object. I just found that if the range
has content, value of the variable will become to the value of the
range. In my case, if the range("A4") store a string "ABC", then the
variable PasteAt="ABC". This will result in error when the other sub is
going to paste data of recordset at a specific range. Can you tell me
how to solve this problem? Your help will be appreciated.

The following is my coding.


Sub main()
Dim Server As String, Database As String, SQLcommand As String, PasteAt
As Range
Server = "SBS-2003"
Database = "Data-03"
Set PasteAt = Range("A4")
...
...
Call GetData(Server, Database, SQLcommand, PasteAt)
...
...
End Sub

Sub GetData(Svr As String, Db As String, SqlCmd As String, Pste As
Range)
...
...
End Sub


Billy











ozgrid.com

Dim As Range Object
 
IF PasteAt<VbNullString Then Range("A4").Cut Cells(Rows.Count,
Columns.Count)
'YOUR CODE



--
Regards
Dave Hawley
www.ozgrid.com
"Billy Leung" wrote in message
...
Hi Dave,
In my case, yes, I can clear the range first. But for arguement sake, if I
need to maintain the value but need to pass the range object, what should
I do?

(the second option you offer is going to the last cell of the sheet. am I
correct?)

Billy

"ozgrid.com" wrote in message
...
Why not clear the Range before passing the Range Object?

Or use;
Set PasteAt =Cells(Rows.Count,"A").End(XlUp)(2,1)



--
Regards
Dave Hawley
www.ozgrid.com
"Billy Leung" wrote in message
...
Hi Dave,
Thanks for your prompt response. In my case, I want to pass the
"location" to the other sub. The "location" means where I would like to
paste the recordset. If the range("A4") is empty, the macro run
perfectly. (By the way, if I type ?PasteAt in immediate windows, it
doesn't show anything. Is that normal?). Should I have to clear the
content of range("A4") before I set PasteAT?

Billy

"ozgrid.com" wrote in message
...
What value should your range Object store if NOT the Cell you Set it
to?



--
Regards
Dave Hawley
www.ozgrid.com
"Billy Leung" wrote in message
...
Hi,

I am writing a macro to call another sub. One of the argument that I
pass to the other sub is a range object. I just found that if the
range has content, value of the variable will become to the value of
the range. In my case, if the range("A4") store a string "ABC", then
the variable PasteAt="ABC". This will result in error when the other
sub is going to paste data of recordset at a specific range. Can you
tell me how to solve this problem? Your help will be appreciated.

The following is my coding.


Sub main()
Dim Server As String, Database As String, SQLcommand As String,
PasteAt As Range
Server = "SBS-2003"
Database = "Data-03"
Set PasteAt = Range("A4")
...
...
Call GetData(Server, Database, SQLcommand, PasteAt)
...
...
End Sub

Sub GetData(Svr As String, Db As String, SqlCmd As String, Pste As
Range)
...
...
End Sub


Billy












Billy Leung[_3_]

Dim As Range Object
 
Dave,
Thanks.
Billy
"ozgrid.com" wrote in message
...
IF PasteAt<VbNullString Then Range("A4").Cut Cells(Rows.Count,
Columns.Count)
'YOUR CODE



--
Regards
Dave Hawley
www.ozgrid.com
"Billy Leung" wrote in message
...
Hi Dave,
In my case, yes, I can clear the range first. But for arguement sake, if
I need to maintain the value but need to pass the range object, what
should I do?

(the second option you offer is going to the last cell of the sheet. am I
correct?)

Billy

"ozgrid.com" wrote in message
...
Why not clear the Range before passing the Range Object?

Or use;
Set PasteAt =Cells(Rows.Count,"A").End(XlUp)(2,1)



--
Regards
Dave Hawley
www.ozgrid.com
"Billy Leung" wrote in message
...
Hi Dave,
Thanks for your prompt response. In my case, I want to pass the
"location" to the other sub. The "location" means where I would like to
paste the recordset. If the range("A4") is empty, the macro run
perfectly. (By the way, if I type ?PasteAt in immediate windows, it
doesn't show anything. Is that normal?). Should I have to clear the
content of range("A4") before I set PasteAT?

Billy

"ozgrid.com" wrote in message
...
What value should your range Object store if NOT the Cell you Set it
to?



--
Regards
Dave Hawley
www.ozgrid.com
"Billy Leung" wrote in message
...
Hi,

I am writing a macro to call another sub. One of the argument that I
pass to the other sub is a range object. I just found that if the
range has content, value of the variable will become to the value of
the range. In my case, if the range("A4") store a string "ABC", then
the variable PasteAt="ABC". This will result in error when the other
sub is going to paste data of recordset at a specific range. Can you
tell me how to solve this problem? Your help will be appreciated.

The following is my coding.


Sub main()
Dim Server As String, Database As String, SQLcommand As String,
PasteAt As Range
Server = "SBS-2003"
Database = "Data-03"
Set PasteAt = Range("A4")
...
...
Call GetData(Server, Database, SQLcommand, PasteAt)
...
...
End Sub

Sub GetData(Svr As String, Db As String, SqlCmd As String, Pste As
Range)
...
...
End Sub


Billy
















All times are GMT +1. The time now is 11:33 PM.

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