Question: I have data on Sheet2 and Sheet3 in my workbook. They have identical property locations listed in columns A and B, but the data in the columns next to them are different so I've defined different ranges. Depending on which report tab I'm trying to populate, I need the code to refer to Sheet2.Range(named range) or Sheet3.Range(named range), but I'm getting errors. It's always selecting the data from Sheet1 or giving me errors. I tried using With End With for the occupancy tab section when defining the named range to indicate the ranges should use Sheet2 but that didn't work. I also tried activating Sheet2 when I move to the "Occupancy Tab Copy and Paste" section below, but that didn't work either. Help!
My Code Currently:
`Dim Pltf As Range
Set Pltf = Sheet1.Range("C3")
Dim message As String
'Define individual regions within platforms
Dim OntarioWest1, OntarioWest2, OntarioWest3, OntarioWest4, OntarioWest9, OntarioWestTransReg As Range
Dim OntarioEast5, OntarioEast6, OntarioEast7, OntarioEast8, OntarioEastTransReg As Range
Dim West1, West2, West3, West4, WestTransReg As Range
Dim Quebec1, Quebec2, Quebec3, Quebec4, QuebecTransReg As Range
'Define the area to select for Ontario West regions
Set OntarioWest1 = Range(("A18:B18"), Range("A18:B18").End(xlDown))
Set OntarioWest2 = Range(OntarioWest1.End(xlDown).End(xlDown).Resize(1, 2), OntarioWest1.End(xlDown).End(xlDown).End(xlDown))
Set OntarioWest3 = Range(OntarioWest2.End(xlDown).End(xlDown).Resize(1, 2), OntarioWest2.End(xlDown).End(xlDown).End(xlDown))
Set OntarioWest4 = Range(OntarioWest3.End(xlDown).End(xlDown).Resize(1, 2), OntarioWest3.End(xlDown).End(xlDown).End(xlDown))
Set OntarioWest9 = Range(OntarioWest4.End(xlDown).End(xlDown).Resize(1, 2), OntarioWest4.End(xlDown).End(xlDown).End(xlDown))
Set OntarioWestTransReg = Range(OntarioWest9.End(xlDown).End(xlDown).Resize(1, 2), OntarioWest9.End(xlDown).End(xlDown).End(xlDown))
'Define the area to select for Ontario East regions
Set OntarioEast5 = Range(OntarioWestTransReg.End(xlDown).End(xlDown).Resize(1, 2), OntarioWestTransReg.End(xlDown).End(xlDown).End(xlDown))
Set OntarioEast6 = Range(OntarioEast5.End(xlDown).End(xlDown).Resize(1, 2), OntarioEast5.End(xlDown).End(xlDown).End(xlDown))
Set OntarioEast7 = Range(OntarioEast6.End(xlDown).End(xlDown).Resize(1, 2), OntarioEast6.End(xlDown).End(xlDown).End(xlDown))
Set OntarioEast8 = Range(OntarioEast7.End(xlDown).End(xlDown).Resize(1, 2), OntarioEast7.End(xlDown).End(xlDown).End(xlDown))
Set OntarioEastTransReg = Range(OntarioEast8.End(xlDown).End(xlDown).Resize(1, 2), OntarioEast8.End(xlDown).End(xlDown).End(xlDown))
'Define the area to select for West
Set West1 = Range(OntarioEastTransReg.End(xlDown).End(xlDown).End(xlDown).End(xlDown).Resize(1, 2), OntarioEastTransReg.End(xlDown).End(xlDown).End(xlDown).End(xlDown).End(xlDown))
Set West2 = Range(West1.End(xlDown).End(xlDown).Resize(1, 2), West1.End(xlDown).End(xlDown).End(xlDown))
Set West3 = Range(West2.End(xlDown).End(xlDown).Resize(1, 2), West2.End(xlDown).End(xlDown).End(xlDown))
Set West4 = Range(West3.End(xlDown).End(xlDown).Resize(1, 2), West3.End(xlDown).End(xlDown).End(xlDown))
Set WestTransReg = Range(West4.End(xlDown).End(xlDown).Resize(1, 2), West4.End(xlDown).End(xlDown).End(xlDown))
'Define the area to select for Quebec
Set Quebec1 = Range(WestTransReg.End(xlDown).End(xlDown).End(xlDown).End(xlDown).Resize(1, 2), WestTransReg.End(xlDown).End(xlDown).End(xlDown).End(xlDown).End(xlDown))
Set Quebec2 = Range(Quebec1.End(xlDown).End(xlDown).Resize(1, 2), Quebec1.End(xlDown).End(xlDown).End(xlDown))
Set Quebec3 = Range(Quebec2.End(xlDown).End(xlDown).Resize(1, 2), Quebec2.End(xlDown).End(xlDown).End(xlDown))
Set Quebec4 = Range(Quebec3.End(xlDown).End(xlDown).Resize(1, 2), Quebec3.End(xlDown).End(xlDown).End(xlDown))
Set QuebecTransReg = Range(Quebec4.End(xlDown).End(xlDown).Resize(1, 2), Quebec4.End(xlDown).End(xlDown).End(xlDown))
'Define platform by using individual regional ranges
Dim OnW, OnE, Wst, Qc As Range
Set OnW = Range(OntarioWest1, OntarioWestTransReg)
Set OnE = Range(OntarioEast5, OntarioEastTransReg)
Set Wst = Range(West1, WestTransReg)
Set Qc = Range(Quebec1, QuebecTransReg)
**'Occupancy Tab:** Uses platform ranges and regional ranges to define cells to copy. **This needs to refer to Sheet2!!**
Dim OntarioWestOcc, OntarioEastOcc, WestOcc, QuebecOcc As Range
Set OntarioWestOcc = Union(OnW, Range(OntarioWest1, OntarioWestTransReg).Offset(0, 2).Resize(, 15))
Set OntarioEastOcc = Union(OnE, Range(OntarioEast5, OntarioEastTransReg).Offset(0, 2).Resize(, 15))
Set WestOcc = Union(Wst, Range(West1, WestTransReg).Offset(0, 2).Resize(, 15))
Set QuebecOcc = Union(Qc, Range(Quebec1, QuebecTransReg).Offset(0, 2).Resize(, 15))
' Copy and paste data from relevant areas to its respective report tab
**'Occupancy tab copy & paste**
Sheet2.Activate
If Pltf = "Ontario West" Then
OntarioWestOcc.Copy
ElseIf Pltf = "Ontario East" Then
OntarioEastOcc.Copy
ElseIf Pltf = "West" Then
WestOcc.Copy
ElseIf Pltf = "Quebec" Then
QuebecOcc.Copy
Else
message = "No Platform Selected"
End If
With Sheet4.Range("A6")
.PasteSpecial xlPasteColumnWidths
.PasteSpecial xlPasteFormats
.PasteSpecial xlPasteValuesAndNumberFormats
End With
Sheet4.Activate
Sheet4.Cells(1, 1).Select