Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I am having a little problem with this code. It won't copy and paste
from one worksheet to another. I have used the same code for copy and paste before but never in a find loop so I'm guessing maybe I have to do something different. I also tried Workbooks("Book1.xls").Worksheets(2).Range(Cells(y , 1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll Worksheets(2).Range(Cells(y, 1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll Worksheets("SatLog").Range(Cells(y, 1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll None worked With Worksheets(1).Range("A1:A500") Set c = .Find("Substrate # 1", LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address y = 1 Do Range(c.Offset(0, 0), c.Offset(3, 1)).Copy Workbooks("Book1.xls").Worksheets("SatLog").Range( Cells(y, 1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll <--------Errors here Set c = .FindNext(c) y = y + 4 Loop While Not c Is Nothing And c.Address < firstAddress End If End With |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
If SatLog in book1.xls isn't the activesheet, then this line will fail.
Workbooks("Book1.xls").Worksheets("SatLog").Range( Cells(y, 1), _ Cells(y, 2)).PasteSpecial Paste:=xlPasteAll Those cells() reference refer to the activesheet (if the code is in a general module) or the worksheet that owns the code (if the code is behind a worksheet). I'd use something like this (untested): Dim DestCell as range 'in your declaration section (at the top) With Worksheets(1).Range("A1:A500") Set c = .Find("Substrate # 1", LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address y = 1 Do with workbooks("book1.xls").worksheets("satlog") set destcell = .range(.cells(y,1),.cells(y,2)) end with Range(c.Offset(0, 0), c.Offset(3, 1)).Copy destcell.PasteSpecial Paste:=xlPasteAll Set c = .FindNext(c) y = y + 4 Loop While Not c Is Nothing And c.Address < firstAddress End If End With wrote: I am having a little problem with this code. It won't copy and paste from one worksheet to another. I have used the same code for copy and paste before but never in a find loop so I'm guessing maybe I have to do something different. I also tried Workbooks("Book1.xls").Worksheets(2).Range(Cells(y , 1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll Worksheets(2).Range(Cells(y, 1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll Worksheets("SatLog").Range(Cells(y, 1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll None worked With Worksheets(1).Range("A1:A500") Set c = .Find("Substrate # 1", LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address y = 1 Do Range(c.Offset(0, 0), c.Offset(3, 1)).Copy Workbooks("Book1.xls").Worksheets("SatLog").Range( Cells(y, 1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll <--------Errors here Set c = .FindNext(c) y = y + 4 Loop While Not c Is Nothing And c.Address < firstAddress End If End With -- Dave Peterson |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
On Jul 16, 7:55 am, Dave Peterson wrote:
If SatLog in book1.xls isn't the activesheet, then this line will fail. Workbooks("Book1.xls").Worksheets("SatLog").Range( Cells(y, 1), _ Cells(y, 2)).PasteSpecial Paste:=xlPasteAll Those cells() reference refer to the activesheet (if the code is in a general module) or the worksheet that owns the code (if the code is behind a worksheet). I'd use something like this (untested): Dim DestCell as range 'in your declaration section (at the top) With Worksheets(1).Range("A1:A500") Set c = .Find("Substrate # 1", LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address y = 1 Do with workbooks("book1.xls").worksheets("satlog") set destcell = .range(.cells(y,1),.cells(y,2)) end with Range(c.Offset(0, 0), c.Offset(3, 1)).Copy destcell.PasteSpecial Paste:=xlPasteAll Set c = .FindNext(c) y = y + 4 Loop While Not c Is Nothing And c.Address < firstAddress End If End With wrote: I am having a little problem with this code. It won't copy and paste from one worksheet to another. I have used the same code for copy and paste before but never in a find loop so I'm guessing maybe I have to do something different. I also tried Workbooks("Book1.xls").Worksheets(2).Range(Cells(y , 1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll Worksheets(2).Range(Cells(y, 1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll Worksheets("SatLog").Range(Cells(y, 1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll None worked With Worksheets(1).Range("A1:A500") Set c = .Find("Substrate # 1", LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address y = 1 Do Range(c.Offset(0, 0), c.Offset(3, 1)).Copy Workbooks("Book1.xls").Worksheets("SatLog").Range( Cells(y, 1), Cells(y, 2)).PasteSpecial Paste:=xlPasteAll <--------Errors here Set c = .FindNext(c) y = y + 4 Loop While Not c Is Nothing And c.Address < firstAddress End If End With -- Dave Peterson- Hide quoted text - - Show quoted text - Dave Thank you it did work. SatLog was not the active sheet but the change you made to the code made it work out. Thanks again. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Copy&paste of several sheets | Excel Programming | |||
Copy&paste of several sheets | Excel Discussion (Misc queries) | |||
Copy-Paste sheets - error in the dates | Excel Worksheet Functions | |||
Copy and paste between sheets | Excel Programming | |||
Code Error - Run Time Error 5 (Disable Cut, Copy & Paste) | Excel Programming |