Home |
Search |
Today's Posts |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I made a small modification to the function to handle an empty worksheet, but
it worked fine with me in terms of writing the data farther down in the sheet for subsequent use. (the technique in the GetRealLastCell function is widely used and is pretty robust). Try this revision and see if it works for you. Sub copydata() Dim sh1 As Worksheet, sh2 As Worksheet Dim rng1 As Range, rng2 As Range Set sh1 = Worksheets("Time Sheet") Set sh2 = Worksheets("Time Record") Set rng1 = sh1.Range("A11:X26") Set rng2 = GetRealLastCell(sh2) Set rng2 = sh2.Cells(rng2.Row + 1, 1) rng1.Copy rng2.PasteSpecial xlValues End Sub Public Function GetRealLastCell(sh As Worksheet) As Range Dim RealLastRow As Long Dim RealLastColumn As Long On Error Resume Next RealLastRow = _ sh.Cells.Find("*", sh.Range("A1"), , , xlByRows, xlPrevious).Row RealLastColumn = _ sh.Cells.Find("*", sh.Range("A1"), , , xlByColumns, xlPrevious).Column If RealLastRow < 1 Then RealLastRow = 1 If RealLastColumn < 1 Then RealLastColumn = 1 Set GetRealLastCell = sh.Cells(RealLastRow, RealLastColumn) End Function -- Regards, Tom Ogilvy "Theo Degr" wrote: Tom, Thank you. The Macro Runs with that code change. The only problem is that when I run it again it overwrites the data that was previously copied to "Time Record." It does not appear that it is searching for an empty Row. "Tom Ogilvy" wrote: Public GetRealLastCell(sh as Worksheet) as range Should be Public Function GetRealLastCell(sh as Worksheet) as range -- Regards, Tom Ogilvy "Theo Degr" wrote: Tom, Thank you. I am getting a Compile Error when entering the following Line: Public GetRealLastCell(sh as Worksheet) as range The word "as" is highlighted I am not sure why. "Tom Ogilvy" wrote: the below untested pseudocode should get you going: Sub copydata() Dim sh1 as Worksheet, sh2 as Worksheet Set rng1 as range, rng2 as Range set sh1 = Worksheets("Time Sheet") set sh2 = Worksheets("Tme Record") set rng1 = sh1.Range("A11:X26") set rng2 = GetRealLastCell(sh2) set rng2 = sh2.cells(rng2.row+1,1) rng1.copy rng2.pasteSpecial xlValues End Sub Public GetRealLastCell(sh as Worksheet) as Range Dim RealLastRow As Long Dim RealLastColumn As Long On Error Resume Next RealLastRow = _ sh.Cells.Find("*", Sh.Range("A1"), , , xlByRows, xlPrevious).Row RealLastColumn = _ sh.Cells.Find("*", sh.Range("A1"), , , xlByColumns, xlPrevious).Column set GetRealLastCell = sh.Cells(RealLastRow, RealLastColumn) End Function -- Regards, Tom Ogilvy "Theo Degr" wrote: I have created some Macros using the already posted suggestions but I am having trouble finding one that fits my current need. I am hoping that someone out here can help me. I am trying to copy a Range of Data "a11:x26" from one Work Sheet "Time Sheet" to another Work Sheet "Time Record." I need the Macro to per form a couple of tasks. First it would need to perform the copy. The copy would need to be the values only of the cells. Then the next time that I would need to copy the data it would need to find the next empty row on the Work Sheet "Time record." Could someone please help me. Thank you, Ted |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
How do I copy a range of data to another sheet? | Excel Worksheet Functions | |||
Copy data from 1 work sheet to another automatically | Excel Discussion (Misc queries) | |||
copy data from a specific range to another sheet | Excel Programming | |||
Use macro to check a range of cells within a row and copy wanted data to new sheet | Excel Programming | |||
Use macro to check a range of cells within a row and copy wanted data to new sheet | Excel Programming |