View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
GS[_2_] GS[_2_] is offline
external usenet poster
 
Posts: 3,514
Default VBA Copy & Paste multiple ranges

Here's one example that uses the info as you provided...

Sub TransferData()
Const sXfers1$ = "A1=one,F9:AC9=C204:Z204,F15:AC15=C207:Z207"
Const sXfers2$ = "P40=two,F9:AC9=C204:Z204,F15:AC15=C207:Z207"
Const sXfers3$ = "P40=three,F9:AC9=C204:Z204,F15:AC15=C207:Z207 "
Const sXfers4$ = "P40=four,F9:AC9=C204:Z204,F15:AC15=C207:Z207"

Dim vDataXfers$(1 To 4), vRef, v, n&, k&
Dim wksSource As Worksheet, wksTarget As Worksheet

vDataXfers(1) = sXfers1: vDataXfers(2) = sXfers2
vDataXfers(3) = sXfers3: vDataXfers(4) = sXfers4
Set wksSource = Sheets("GetValues"): Set wksTarget =
Sheets("PasteValues")

For n = LBound(vDataXfers) To UBound(vDataXfers)
v = Split(vDataXfers(n), ","): vRef = Split(v(0), "=")
If Sheets("Start").Range(vRef(0)) = vRef(1) Then
For k = 1 To UBound(v)
vRef = Split(v(k), "=")
wksTarget.Range(vRef(0)).Value = wksSource.Range(vRef(1)).Value
Next 'k
End If
Next 'n
End Sub

...where sXfers# is a delimited string 'list' of delimited value pairs,
starting with the criteria for the If evaluation. (Since the range
addresses use the colon character I changed my original list delimiter
from a colon to a comma) Edit the 4 sXfers# strings to match your
needs.

--
Garry

Free usenet access at http://www.eternal-september.org
Classic VB Users Regroup!
comp.lang.basic.visual.misc
microsoft.public.vb.general.discussion