|   | A | B | C | D | E | F | G | H | I | J |
| 1 | A1-2 | B1-2 | C1-2 | D1-2 | E1-2 | F1-2 | G1-2 | H1-2 | I1-2 | J1-2 |
| 2 | A2-2 | B2-2 | 83 | 69.00 | 44 | F | H2-2 | I2-2 | J2-2 | |
| 3 | A3-2 | B3-2 | 60 | 58.00 | 22 | G | H3-2 | I3-2 | J3-2 | |
| 4 | A4-2 | B4-2 | 78 | 11.00 | 73 | D | H4-2 | I4-2 | J4-2 | |
| 5 | A5-2 | B5-2 | 99 | 4.00 | 83 | H | H5-2 | I5-2 | J5-2 | |
| 6 | A6-2 | B6-2 | 33 | 16.00 | 86 | G | H6-2 | I6-2 | J6-2 | |
| 7 | A7-2 | B7-2 | 66 | 25.00 | 44 | A | H7-2 | I7-2 | J7-2 | |
| 8 | A8-2 | B8-2 | 12 | 74.00 | 61 | H | H8-2 | I8-2 | J8-2 | |
| 9 | A9-2 | B9-2 | 80 | 5.00 | 24 | G | H9-2 | I9-2 | J9-2 | |
| 10 | A10-2 | B10-2 | C10-2 | 48 | 28.00 | 52 | D | H10-2 | I10-2 | J10-2 |
| 11 | A11-2 | B11-2 | C11-2 | 35 | 88.00 | 20 | D | H11-2 | I11-2 | J11-2 |
| 12 | A12-2 | B12-2 | C12-2 | 64 | 54.00 | 91 | G | H12-2 | I12-2 | J12-2 |
| 13 | A13-2 | B13-2 | C13-2 | 54 | 58.00 | 11 | E | H13-2 | I13-2 | J13-2 |
| 14 | A14-2 | B14-2 | C14-2 | 27 | 54.00 | 67 | A | H14-2 | I14-2 | J14-2 |
|   | A | B | C | D | E | F | G |
| 1 | A1-2 | B1-2 | C1-2 | D1-2 | E1-2 | F1-2 | G1-2 |
| 2 | A2-2 | B2-2 | 83 | 69.00 | 44 | F | |
| 3 | A3-2 | B3-2 | 60 | 58.00 | 22 | G | |
| 4 | A4-2 | B4-2 | 78 | 11.00 | 73 | D | |
| 5 | A5-2 | B5-2 | 99 | 4.00 | 83 | H | |
| 6 | A6-2 | B6-2 | 33 | 16.00 | 86 | G | |
| 7 | A7-2 | B7-2 | 66 | 25.00 | 44 | A | |
| 8 | A8-2 | B8-2 | 12 | 74.00 | 61 | H | |
| 9 | A9-2 | B9-2 | 80 | 5.00 | 24 | G | |
| 10 | A10-2 | B10-2 | C10-2 | 48 | 28.00 | 52 | D |
| 11 | A11-2 | B11-2 | C11-2 | 35 | 88.00 | 20 | D |
Delete the rows you do not want, because the INDIRECT worksheet formula is used and the cell address is within double quotes, the formulas will not adjust addresses due to insertions/deletions on the source worksheet.
|   | A | B | C | D | E | F | G |
| 1 | A1-2 | B1-2 | C1-2 | D1-2 | E1-2 | F1-2 | G1-2 |
| 2 | A2-2 | B2-2 | 83 | 69.00 | 44 | F | |
| 3 | A9-2 | B9-2 | 80 | 5.00 | 24 | G | |
| 4 | A10-2 | B10-2 | C10-2 | 48 | 28.00 | 52 | D |
| 5 | A11-2 | B11-2 | C11-2 | 35 | 88.00 | 20 | D |
| 6 |
Sample Forumulas   displayed using: =personal.xls!GetFormulaD(A1)
A1: =IF(INDIRECT("'sheet2'!A1")="","",INDIRECT("'sheet2'!A1"))
A2: =IF(INDIRECT("'sheet2'!A2")="","",INDIRECT("'sheet2'!A2"))
A3: =IF(INDIRECT("'sheet2'!A9")="","",INDIRECT("'sheet2'!A9"))
A4: =IF(INDIRECT("'sheet2'!A10")="","",INDIRECT("'sheet2'!A10"))
A5: =IF(INDIRECT("'sheet2'!A11")="","",INDIRECT("'sheet2'!A11"))
The macro code: (Reference this webpage, Please do NOT post my macros to newsgroups)
Option Explicit
Sub Replicate_from()
'David McRitchie, 2006-03-04,
' http://www.mvps.org/dmcritchie/excel/replicate.htm
Dim Other_sheet As String, This_sheet As String
Dim This_range As String
Dim inner As String
Dim cell As Range
Other_sheet = "sheetx" '-- will use if it exists
retry:
On Error Resume Next
If Len(Worksheets(Other_sheet).Name) < 1 Then
If LCase(Other_sheet) = "sheetx" Then Other_sheet = "sheet2"
On Error GoTo 0 '-- sheet2 is a suggestion
Other_sheet = Application.InputBox("supply name " _
& "of input worksheet", "Name of input worksheet", _
Other_sheet, , , , , 2)
If Other_sheet = "" Or Other_sheet = "False" Then
MsgBox "cancelled by your command -- " & Other_sheet
Exit Sub
End If
GoTo retry
End If
On Error GoTo 0
This_sheet = ActiveSheet.Name
This_range = Selection.Address(0, 0)
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Sheets(Other_sheet).Range(This_range).Copy
Sheets(This_sheet).Activate
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
On Error Resume Next
For Each cell In Selection
inner = "INDIRECT(""'" & Other_sheet _
& "'!" & cell.Address(0, 0) & """)"
cell.Formula = "=IF(" & inner & "="""",""""," & inner & ")"
Next cell
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Please send your comments concerning this web page to: David McRitchie send email comments
Copyright © 1997 - 2006, F. David McRitchie, All Rights Reserved