Solved

Excel VBA - Copy / Paste without using "selection"

Posted on 2011-02-21
14
1,139 Views
Last Modified: 2012-05-11
I want to copy values of one row onto another row without "selecting"

Here's my attempt:

Range(vSourceRow).Copy Destination:=Range("2:2").PasteSpecial (xlPasteValues)
0
Comment
Question by:AndresHernando
  • 5
  • 4
  • 4
  • +1
14 Comments
 
LVL 18

Assisted Solution

by:Cluskitt
Cluskitt earned 65 total points
ID: 34942035
Assuming vSourceRow is a full row:

Range(vSourceRow).Copy
Range("2:2").PasteSpecial (xlPasteValues)
0
 
LVL 3

Expert Comment

by:imaki06
ID: 34942037
Have you tried to make the macro with recoder?

It would give you something like this:
Range("A1:B2").Select
    Selection.Copy
    Range("A4").Select
    ActiveSheet.Paste
0
 
LVL 18

Expert Comment

by:Cluskitt
ID: 34942055
Have you tried reading the question? He specifically said he wanted to copy/paste without selecting.
0
 
LVL 85

Expert Comment

by:Rory Archibald
ID: 34942130
You could also simply assign the .Value property from one range to the other.
0
 

Author Comment

by:AndresHernando
ID: 34942195
rorya,
what's the script for your suggestion?  What I wrote below doesn't work.
    Range("SourceRow").Value = Range("DestinationRow").Value

Thanks, --Andres
0
 
LVL 85

Accepted Solution

by:
Rory Archibald earned 60 total points
ID: 34942206
Other way round:
Range("DestinationRow").Value = Range("SourceRow").Value

Open in new window

as you are assigning the source values to the destination. Note that the ranges must be the same size.
0
 
LVL 18

Expert Comment

by:Cluskitt
ID: 34942227
If Source and Destination are variables, you need to:

Range(DestinationRow).Value = Range(SourceRow).Value
0
What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 

Author Comment

by:AndresHernando
ID: 34942272
Cluskitt:
I tried your suggestion (see below), but it bugs out.  What am I doing wrong?

Sub CopyRows()
    Dim vSourceRow As Range
    Dim vRowNum As Long
   
    vRowNum = 9
    Set vSourceRow = Range(vRowNum & ":" & vRowNum)
    Range(vSourceRow).Copy '..............................................Bugs out here
    Range("2:2").PasteSpecial (xlPasteValues)

End Sub


Tnx, --Andres
0
 
LVL 85

Expert Comment

by:Rory Archibald
ID: 34942282
vSourceRow is a Range, not an address, so:
vSourceRow.Copy
    Range("2:2").PasteSpecial xlPasteValues

Open in new window

0
 
LVL 18

Expert Comment

by:Cluskitt
ID: 34942305
Yes, it all depends on the the variables you declare. If you declare it as a range, you have to use it as a range. For example, if you declared vSourceRow as String, then assigned it to: "9:9", you could then use Range(vSourceRow). If it's a range, you have to use it as rorya said. If you use it as integer and assign it the value 9, you have to use: Range(vSourceRow & ":" & vSourceRow)
0
 

Author Closing Comment

by:AndresHernando
ID: 34942337
Thanks for the info.  Both worked.
To be fair, I split, giving the extra 5pts to Cluskitt for answering first.

I'm not sure if this is the correct protocol... I just recently started using this site.

Please tell me if I am in breach of proper etiquette by splitting pts like I did.
0
 
LVL 85

Expert Comment

by:Rory Archibald
ID: 34942357
To my mind, you closed this properly - thank you! :)
0
 
LVL 18

Expert Comment

by:Cluskitt
ID: 34942521
I agree. Both answered the question using different approaches. Not that points are that important, but it's only fair to split things :)
0
 

Author Comment

by:AndresHernando
ID: 34942706
Great.  Thanks again guys.  --Andres
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

A little background as to how I came to I design this code: Around 5 years ago I designed an add-in that formatted Excel files to a corporate standard, applying different cell colours and font type depending on whether the cells contained inputs,…
How to quickly and accurately populate Word documents with Excel data, charts and images (including Automated Bookmark generation) David Miller (dlmille) Synopsis In this article you’ll learn how to use ExcelToWord! to copy data,charts, shapes …
The viewer will learn how to use the =DISCRINV command to create a discrete random variable, use this command to model a set of probabilities and outcomes in a Monte Carlo simulation, and learn how to find the standard deviation of a set of probabil…
The viewer will learn how to create a normally distributed random variable in Excel, use a normal distribution to simulate the return on an investment over a period of years, Create a Monte Carlo simulation using a normal random variable, and calcul…

757 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now