Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 41
Default Concatination error in macro

Hi

In order to select an area limited by the number of rows in column A that
contain data in them I was provided with the following code:

Sub Select_area()

Dim LastRowUsed As Integer
Dim rngToCopy As Range

LastRowUsed = Range("A" & Rows.Count).End(xlUp).Row

Set rngToCopy = "A1:U" & LastRowUsed

End Sub

However, when I run this I get a compelation error: type mismatch and the
debugger highlights the & in the Set rngToCopy instruction which I read as
concatinating the number returned with the U to create a range.

Can anyone explain why this has failed and more importantly how to fix it?

As always thanks for any help
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,302
Default Concatination error in macro

Hi Constantly,

Try replacing

Set rngToCopy = "A1:U" & LastRowUsed



with

Set rngToCopy = Range("A1:U" & LastRowUsed)


---
Regards,
Norman


"Constantly Amazed" wrote in
message ...
Hi

In order to select an area limited by the number of rows in column A that
contain data in them I was provided with the following code:

Sub Select_area()

Dim LastRowUsed As Integer
Dim rngToCopy As Range

LastRowUsed = Range("A" & Rows.Count).End(xlUp).Row

Set rngToCopy = "A1:U" & LastRowUsed

End Sub

However, when I run this I get a compelation error: type mismatch and the
debugger highlights the & in the Set rngToCopy instruction which I read as
concatinating the number returned with the U to create a range.

Can anyone explain why this has failed and more importantly how to fix it?

As always thanks for any help



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,501
Default Concatination error in macro

You nearly got it, try this:-

Set rngToCopy = Range("A1:U5" & LastRowUsed)

Mike

"Constantly Amazed" wrote:

Hi

In order to select an area limited by the number of rows in column A that
contain data in them I was provided with the following code:

Sub Select_area()

Dim LastRowUsed As Integer
Dim rngToCopy As Range

LastRowUsed = Range("A" & Rows.Count).End(xlUp).Row

Set rngToCopy = "A1:U" & LastRowUsed

End Sub

However, when I run this I get a compelation error: type mismatch and the
debugger highlights the & in the Set rngToCopy instruction which I read as
concatinating the number returned with the U to create a range.

Can anyone explain why this has failed and more importantly how to fix it?

As always thanks for any help

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,501
Default Concatination error in macro

oops typo

Set rngToCopy = Range("A1:U" & LastRowUsed)

Mike

"Mike H" wrote:

You nearly got it, try this:-

Set rngToCopy = Range("A1:U5" & LastRowUsed)

Mike

"Constantly Amazed" wrote:

Hi

In order to select an area limited by the number of rows in column A that
contain data in them I was provided with the following code:

Sub Select_area()

Dim LastRowUsed As Integer
Dim rngToCopy As Range

LastRowUsed = Range("A" & Rows.Count).End(xlUp).Row

Set rngToCopy = "A1:U" & LastRowUsed

End Sub

However, when I run this I get a compelation error: type mismatch and the
debugger highlights the & in the Set rngToCopy instruction which I read as
concatinating the number returned with the U to create a range.

Can anyone explain why this has failed and more importantly how to fix it?

As always thanks for any help

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Concatination error in macro

Set rngToCopy = "A1:U" & LastRowUsed
should be something like:

Set rngToCopy = range("A1:U" & LastRowUsed)
or
Set rngToCopy = activesheet.range("A1:U" & LastRowUsed)

And I'd use
dim LastRowUsed as Long



Constantly Amazed wrote:

Hi

In order to select an area limited by the number of rows in column A that
contain data in them I was provided with the following code:

Sub Select_area()

Dim LastRowUsed As Integer
Dim rngToCopy As Range

LastRowUsed = Range("A" & Rows.Count).End(xlUp).Row

Set rngToCopy = "A1:U" & LastRowUsed

End Sub

However, when I run this I get a compelation error: type mismatch and the
debugger highlights the & in the Set rngToCopy instruction which I read as
concatinating the number returned with the U to create a range.

Can anyone explain why this has failed and more importantly how to fix it?

As always thanks for any help


--

Dave Peterson


  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default Concatination error in macro

If this is the same situation you described yesterday, then that solution
wouldn't work to your specifications anyway. Here is a correction to what I
previously suggested:

Dim lastrow as Long, realLastRow as Long
Dim rngtocopy as Range
lastrow = cells(rows.count,1).End(xlup).row '<==
for i = lastrow to 4 step -1
if len(trim(cells(i,1).text)) 0 then
reallastrow = i
exit for
end if
Next
Set rngToCopy = Range("A4:A" & reallastrow)

--
Regards,
Tom Ogilvy




"Constantly Amazed" wrote:

Hi

In order to select an area limited by the number of rows in column A that
contain data in them I was provided with the following code:

Sub Select_area()

Dim LastRowUsed As Integer
Dim rngToCopy As Range

LastRowUsed = Range("A" & Rows.Count).End(xlUp).Row

Set rngToCopy = "A1:U" & LastRowUsed

End Sub

However, when I run this I get a compelation error: type mismatch and the
debugger highlights the & in the Set rngToCopy instruction which I read as
concatinating the number returned with the U to create a range.

Can anyone explain why this has failed and more importantly how to fix it?

As always thanks for any help

  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 41
Default Concatination error in macro

Hi Tom

Thanks for that. As your previous reply was some pages back I wasn't sure
if you would pick up on the error so I was trying to modify some other code
in the meantime. It works fine now when I put in a column reference.

If it is not too much trouble how can the code be further modified so it
looks for the last column which contains data as well as the last row.

Sorry if my second post caused any inconvenience.

"Tom Ogilvy" wrote:

If this is the same situation you described yesterday, then that solution
wouldn't work to your specifications anyway. Here is a correction to what I
previously suggested:

Dim lastrow as Long, realLastRow as Long
Dim rngtocopy as Range
lastrow = cells(rows.count,1).End(xlup).row '<==
for i = lastrow to 4 step -1
if len(trim(cells(i,1).text)) 0 then
reallastrow = i
exit for
end if
Next
Set rngToCopy = Range("A4:A" & reallastrow)

--
Regards,
Tom Ogilvy




"Constantly Amazed" wrote:

Hi

In order to select an area limited by the number of rows in column A that
contain data in them I was provided with the following code:

Sub Select_area()

Dim LastRowUsed As Integer
Dim rngToCopy As Range

LastRowUsed = Range("A" & Rows.Count).End(xlUp).Row

Set rngToCopy = "A1:U" & LastRowUsed

End Sub

However, when I run this I get a compelation error: type mismatch and the
debugger highlights the & in the Set rngToCopy instruction which I read as
concatinating the number returned with the U to create a range.

Can anyone explain why this has failed and more importantly how to fix it?

As always thanks for any help

  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default Concatination error in macro

Uses column A to determine lastrow and row 1 to determine last column:

Sub AAA()
Dim lastrow As Long, realLastRow As Long
Dim lastColumn As Long, realLastColumn As Long
Dim rngtocopy As Range, i As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row '<==
realLastRow = 4
For i = lastrow To 4 Step -1
If Len(Trim(Cells(i, 1).Text)) 0 Then
realLastRow = i
Exit For
End If
Next
lastColumn = Cells(1, "IV").End(xlToLeft).Column
realLastColumn = lastColumn
For i = lastColumn To 1 Step -1
If Len(Trim(Cells(1, i).Text)) 0 Then
realLastColumn = i
Exit For
End If
Next
Set rngtocopy = Range("A4", Cells(realLastRow, realLastColumn))
rngtocopy.Select
End Sub

--
Regards,
Tom Ogilvy

"Constantly Amazed" wrote:

Hi Tom

Thanks for that. As your previous reply was some pages back I wasn't sure
if you would pick up on the error so I was trying to modify some other code
in the meantime. It works fine now when I put in a column reference.

If it is not too much trouble how can the code be further modified so it
looks for the last column which contains data as well as the last row.

Sorry if my second post caused any inconvenience.

"Tom Ogilvy" wrote:

If this is the same situation you described yesterday, then that solution
wouldn't work to your specifications anyway. Here is a correction to what I
previously suggested:

Dim lastrow as Long, realLastRow as Long
Dim rngtocopy as Range
lastrow = cells(rows.count,1).End(xlup).row '<==
for i = lastrow to 4 step -1
if len(trim(cells(i,1).text)) 0 then
reallastrow = i
exit for
end if
Next
Set rngToCopy = Range("A4:A" & reallastrow)

--
Regards,
Tom Ogilvy




"Constantly Amazed" wrote:

Hi

In order to select an area limited by the number of rows in column A that
contain data in them I was provided with the following code:

Sub Select_area()

Dim LastRowUsed As Integer
Dim rngToCopy As Range

LastRowUsed = Range("A" & Rows.Count).End(xlUp).Row

Set rngToCopy = "A1:U" & LastRowUsed

End Sub

However, when I run this I get a compelation error: type mismatch and the
debugger highlights the & in the Set rngToCopy instruction which I read as
concatinating the number returned with the U to create a range.

Can anyone explain why this has failed and more importantly how to fix it?

As always thanks for any help

  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 41
Default Concatination error in macro

Tom

Thank you very much. I often have to select large areas of data so this
will prove extremely useful.

G

"Tom Ogilvy" wrote:

Uses column A to determine lastrow and row 1 to determine last column:

Sub AAA()
Dim lastrow As Long, realLastRow As Long
Dim lastColumn As Long, realLastColumn As Long
Dim rngtocopy As Range, i As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row '<==
realLastRow = 4
For i = lastrow To 4 Step -1
If Len(Trim(Cells(i, 1).Text)) 0 Then
realLastRow = i
Exit For
End If
Next
lastColumn = Cells(1, "IV").End(xlToLeft).Column
realLastColumn = lastColumn
For i = lastColumn To 1 Step -1
If Len(Trim(Cells(1, i).Text)) 0 Then
realLastColumn = i
Exit For
End If
Next
Set rngtocopy = Range("A4", Cells(realLastRow, realLastColumn))
rngtocopy.Select
End Sub

--
Regards,
Tom Ogilvy

"Constantly Amazed" wrote:

Hi Tom

Thanks for that. As your previous reply was some pages back I wasn't sure
if you would pick up on the error so I was trying to modify some other code
in the meantime. It works fine now when I put in a column reference.

If it is not too much trouble how can the code be further modified so it
looks for the last column which contains data as well as the last row.

Sorry if my second post caused any inconvenience.

"Tom Ogilvy" wrote:

If this is the same situation you described yesterday, then that solution
wouldn't work to your specifications anyway. Here is a correction to what I
previously suggested:

Dim lastrow as Long, realLastRow as Long
Dim rngtocopy as Range
lastrow = cells(rows.count,1).End(xlup).row '<==
for i = lastrow to 4 step -1
if len(trim(cells(i,1).text)) 0 then
reallastrow = i
exit for
end if
Next
Set rngToCopy = Range("A4:A" & reallastrow)

--
Regards,
Tom Ogilvy




"Constantly Amazed" wrote:

Hi

In order to select an area limited by the number of rows in column A that
contain data in them I was provided with the following code:

Sub Select_area()

Dim LastRowUsed As Integer
Dim rngToCopy As Range

LastRowUsed = Range("A" & Rows.Count).End(xlUp).Row

Set rngToCopy = "A1:U" & LastRowUsed

End Sub

However, when I run this I get a compelation error: type mismatch and the
debugger highlights the & in the Set rngToCopy instruction which I read as
concatinating the number returned with the U to create a range.

Can anyone explain why this has failed and more importantly how to fix it?

As always thanks for any help

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
Conditional Concatination FARAZ QURESHI Excel Discussion (Misc queries) 5 January 23rd 09 01:36 PM
Problem with concatination result. Last digit change to 0 DavCan Excel Worksheet Functions 1 August 24th 07 11:48 PM
How set a format on one of more strings in a concatination Steen Excel Discussion (Misc queries) 6 October 29th 06 04:34 PM
concatination of cell contents archeti Excel Programming 8 November 8th 05 11:10 AM
Excal Concatination of cells that are not empty orourksj Excel Worksheet Functions 5 January 20th 05 09:51 PM


All times are GMT +1. The time now is 12:19 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"