View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
jbsand1001 jbsand1001 is offline
external usenet poster
 
Posts: 8
Default Macro to Synchronize workbooks

When I run this with the dots in my statement

Set myRange = .Range("A1", .Range("A1").End(xlDown))

I get a runtime error '91' "object variable or with block variable not set"



Should I just copy and paste your entire program into my VBA field?

Thank You,

Judd


"Dave Peterson" wrote:

There are a couple of blocks of code like this:

With ActSheet
Set myRange = Range("B1", Range("B1").End(xlDown))
End With

You need to include the dots your "Set" statement.

With ActSheet
Set myRange = .Range("B1", .Range("B1").End(xlDown))
End With

The dots mean that the ranges you're referring to belong to the previous with
object (ActSheet) in this case.

Without the dots, then
With ActSheet
Set myRange = Range("B1", Range("B1").End(xlDown))
End With

Refer to the current activesheet--not the sheet that was active when you started
the procedure.


jbsand1001 wrote:

David,
I ran your then information that you sent but It still tells me that my
copy and paste area are not the same.... SO I tweaked it a little to the
following. Now it seems to want to copy and paste ok but now it wants to copy
the following from the new worksheet.

"With ActSheet
Set myRange = Range("B1", Range("B1").End(xlDown))
End With"

I think we are close???

Sub Macro1()
'If each column has a heading, change the 1's to 2's
Dim myRange As Range
Dim ActSheet As Worksheet
Dim newSheet As Worksheet

With ActSheet
Set myRange = Range("A1", Range("A1").End(xlDown))
End With
Workbooks.Add
Set newwks = ActiveWorkbook.Sheets("Sheet1") '<-- in the new workbook

myRange.Copy _
Destination:=newwks.Range("C1")

With ActSheet
Set myRange = Range("B1", Range("B1").End(xlDown))
End With

myRange.Copy
Destination = newwks.Range("C65536").End(xlUp).Offset(1)
End Sub

"jbsand1001" wrote:

I need this to look at column "A" Column "B" etc... and copy column "A" just
the data that is in column "A" and paste to Column "C" and do the same for
column "B" . This data will be added and subtracted to daily so it must know
where the last item in column "A" is and add it to column "C" on the new
workbook then copy the data in column "B" and add to the new workbook where
the data from column "A" left off.

Ok... This is what I have come up with.


Sub Macro1()
'If each column has a heading, change the 1's to 2's
Dim myRange As Range
Set myRange = Range("A1", Range("A1").End(xlDown))
Workbooks.Add
Sheets("Sheet1").Activate
myRange.Copy Range("C1")
Set myRange = Range("B1", Range("B1").End(xlDown))
myRange.Copy Range("C65536").End(xlUp).Offset(1)
End Sub

This so far is doing what I need it to do by copying column "A" and opening
a new workbook and adding to colum "C" in this new workbook, and I think it
is trying to copy "B" but I keep receiving the following message "Run-time
error 1004 the information cannot be pasted because the copy and paster area
are not the same size and shape"


I think this is close???

Judd


--

Dave Peterson