I frequently make ArcMap documents with two data frames, representing a Before and After condition of a site. Each of the two data frames shows the property owner names, parcel numbers and road names. I usually end up typing all of this information in TWICE - once in each data frame.

So far my workflow is to create labels from my parcel shapefile but the data usually has to be modified, so I convert it to map annotation and edit it. I end up doing this in both data frames.

I have tried to select the map annotation that I want and use CTL+C and CTL+V to copy and paste it but this has not produced any copies (at least that I can see within my data frame). Both data frames are in the same projection and are viewing the same extent.

I am looking for a way to copy and paste the map annotation from one data frame to another so that it stays in place, or looking for ideas for a quicker workaround. I would like to occasionally be able to do the same thing with drawing objects inside my data frame (such as lines) so an ideal solution would work for both, but the map annotation would be the most helpful.

  • Have you tried the edit menu copy/paste? Sometimes the keyboard shortcuts don't work but those do. Also, are you changing the active dataframe before you paste? Are you storing the annotations in the mxd or as a layer? Not sure about in the mxd (apparently not by your question), but if as a layer it should show up in both dataframes if that layer is present.
    – Chris W
    Apr 9, 2015 at 21:03
  • @ChrisW, I just tried the edit menu copy/paste tools with the same results. I have been changing the active data frame each time before I paste (making sure I'm working inside the data frame). I am storing the annotations in the MXD (and not on a separate layer) since my parcels are in a shapefile, not a GDB. That may be something to look into. Apr 9, 2015 at 21:16
  • I just made an edit to your question to try and clarify that you are talking about map annotation rather than graphic text. If I have got this astray just rollback my edit.
    – PolyGeo
    Apr 9, 2015 at 22:27
  • @PolyGeo, in some cases I am using annotation stored in the map, but other times, I just create a text box and type the parcel label into that. Apr 10, 2015 at 12:13

1 Answer 1


I have done this in the past, though it is exactly the reason I began to store annotation as feature classes as @Chris W suggests. I strongly recommend that you try that out, because before you know it, you're going to have 3 data frames to deal with... and then the client will want to change the scale...

However, I was able to get this to work just now (all in data view):

  1. set data frame 2 extent to equal data frame 1 (go to data frame properties, use 0 margin)
  2. activate data frame 1, select all annotation, right-click on an element, Copy
  3. activate data frame 2, right-click anywhere in the map, Paste
  • Assuming of course the annotation is 'in the data frame' and not just 'over the data frame', which is a common mistake; based on the description I don't think the user is activating each frame during the operation. I'm a fan of the geodatabase method but one must remember if you move/delete/scale in one map it affects the others, which can come back to bite if you need to reproduce the original - as a matter of practice it's best to copy the original to a new folder then make the changes for each revision. Apr 10, 2015 at 3:45
  • Because the user said she is creating labels from a shapefile I assume it is within the data frame and not on top of it, but you're right. If you do it in data view then you'll only see the stuff in the data frame anyway. You're right to point out that you have to remember that if you change one label, it'll be change in all maps.
    – mr.adam
    Apr 10, 2015 at 7:47
  • This worked and the key seems to be actually switching from Layout View to Data View. I did not do anything different (I was already doing Step 1) except actually switch to data view (rather than just double-clicking to work inside the data frame in layout view). The only problem I am having is that the labels did not line up over the correct spot - they are not far off but not exact. They also don't seem to be in the same relation to each other (ie. I can't move them as a group to the correct spot.) Apr 10, 2015 at 12:21
  • @MichaelMiles-Stimson I was storing my annotation inside of the data frame and switching the active data frame each time I tried to copy and paste but it still didn't work. Actually switching to data view seems to be the only thing that worked so far, but my labels are still not pasting to the exact location. Apr 10, 2015 at 12:28
  • I have a theory, but no time to test it: I think that the labels are placed in the second data frame in the same spot they appear on your viewing screen as in the first. In layout view, your data frames are not directly on top of each other, but I'm thinking it would work if they were. Regarding the persistent misalignment, the only thing I can think of are different CRS's between the data frame, but I assume you've taken care of that.
    – mr.adam
    Apr 10, 2015 at 14:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.