#1   Report Post  
Posted to microsoft.public.excel.misc
sparx
 
Posts: n/a
Default Paste Special


Hi all, I have some code below that another user kindly provided but
would ask if anybody could help me with a slight modification - the
code will copy and paste special a range from one worksheet to another
worksheet and works great - but I have had some items that start with
zero's in the origin and after the paste special ( because I only want
values and not formula's to copy ) will convert say '012345 to 12345
but I do need the '012345 to be displayed as it is - any suggestions
will be kindly received.

Dim sourceRange As Range
Dim destrange As Range
Dim Lr As Long
Lr = LastRow(Sheets("Worksheet1")) + 1
Set sourceRange = Sheets("Worksheet2").Range("BO7:CZ21")
With sourceRange
Set destrange = Sheets("Worksheet1").Range("A" & Lr). _
Resize(.Rows.Count, .Columns.Count)
End With
destrange.Value = sourceRange.Value
End Sub

Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function

Function Lastcol(sh As Worksheet)
On Error Resume Next
Lastcol = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column
On Error GoTo 0
End Function


--
sparx
------------------------------------------------------------------------
sparx's Profile: http://www.excelforum.com/member.php...o&userid=16787
View this thread: http://www.excelforum.com/showthread...hreadid=551639

  #2   Report Post  
Posted to microsoft.public.excel.misc
Gary''s Student
 
Posts: n/a
Default Paste Special

Looking at:

destrange.Value = sourceRange.Value

you can test for the single quote and insure that it gets copied over:

Sub gsnu()
Dim r1, r2 As Range
Set r1 = Range("A1")
Set r2 = Range("A2")
If r1.PrefixCharacter = "'" Then
r2.Value = Chr(39) & r1.Value
Else
r2.Value = r1.Value
End If
End Sub


You need to take this special step to preserve the single quote because

something.value=something.value

is a standard way of removing single quotes.
--
Gary's Student


"sparx" wrote:


Hi all, I have some code below that another user kindly provided but
would ask if anybody could help me with a slight modification - the
code will copy and paste special a range from one worksheet to another
worksheet and works great - but I have had some items that start with
zero's in the origin and after the paste special ( because I only want
values and not formula's to copy ) will convert say '012345 to 12345
but I do need the '012345 to be displayed as it is - any suggestions
will be kindly received.

Dim sourceRange As Range
Dim destrange As Range
Dim Lr As Long
Lr = LastRow(Sheets("Worksheet1")) + 1
Set sourceRange = Sheets("Worksheet2").Range("BO7:CZ21")
With sourceRange
Set destrange = Sheets("Worksheet1").Range("A" & Lr). _
Resize(.Rows.Count, .Columns.Count)
End With
destrange.Value = sourceRange.Value
End Sub

Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function

Function Lastcol(sh As Worksheet)
On Error Resume Next
Lastcol = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column
On Error GoTo 0
End Function


--
sparx
------------------------------------------------------------------------
sparx's Profile: http://www.excelforum.com/member.php...o&userid=16787
View this thread: http://www.excelforum.com/showthread...hreadid=551639


  #3   Report Post  
Posted to microsoft.public.excel.misc
sparx
 
Posts: n/a
Default Paste Special


Hi there, being dum as I am, where would I place your code in the code I
already have?


--
sparx
------------------------------------------------------------------------
sparx's Profile: http://www.excelforum.com/member.php...o&userid=16787
View this thread: http://www.excelforum.com/showthread...hreadid=551639

  #4   Report Post  
Posted to microsoft.public.excel.misc
Gary''s Student
 
Posts: n/a
Default Paste Special

replace:

destrange.Value = sourceRange.Value


with:

If sourceRange.PrefixCharacter = "'" Then
destrange.Value = Chr(39) & sourceRange.Value
Else
destrange.Value = sourceRange.Value
End If

--
Gary's Student


"sparx" wrote:


Hi there, being dum as I am, where would I place your code in the code I
already have?


--
sparx
------------------------------------------------------------------------
sparx's Profile: http://www.excelforum.com/member.php...o&userid=16787
View this thread: http://www.excelforum.com/showthread...hreadid=551639


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
Paste Special and Linking ajkim001 Excel Discussion (Misc queries) 8 March 14th 06 02:10 PM
Paste Special Problem ajkim001 Excel Discussion (Misc queries) 1 March 10th 06 11:50 PM
strange Paste special pmarques Excel Discussion (Misc queries) 1 February 8th 06 07:18 PM
paste special - formulas bjw10 Excel Worksheet Functions 6 February 1st 06 05:17 PM
Paste special treats cells as a picture charlie Excel Discussion (Misc queries) 2 November 17th 05 04:00 PM


All times are GMT +1. The time now is 10:01 PM.

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

About Us

"It's about Microsoft Excel"