Assigning Next Empty Multi-cell Range to Variable Returned by Function I am trying to use a function to return a Range object only 1 x 4 in size using the next empty row in a worksheet so I can transfer values from one range to another on different sheets. Unfortunately I can't seem to figure this one out. I have tried to search for the answer, but all I can find is 1 cell solutions.
Private Function AssignNextRow(project As String) As Range

    Dim projectSheet As Worksheet
    Set projectSheet = Worksheets(project)
    Dim firstEmptyRow As Range
    Set firstEmptyRow = projectSheet.Range(Cells("A" & projectSheet.Rows.count) _
      .End(xlUp).Offset(1, 0), Cells("D" & projectSheet.Rows.count).End(xlUp).Offset(1, 0))
    AssignNextRow = firstEmptyRow

End Function

So what would be the best way to set the Range to the variable?
EDIT:
I've fixed the code that it will run, but now the start of the next sheet's range is offset to start when the last sheet's range ended. The new code is as follows:
Private Function AssignNextRow(project As String) As Range

    Dim projectSheet As Worksheet
    Set projectSheet = Worksheets(project)
    Dim firstEmptyRow As Range
    Set firstEmptyRow = projectSheet.Range("A" & projectSheet.Rows.count) _
      .End(xlUp).Offset(1, 0).Resize(1, 4)
    Set AssignNextRow = firstEmptyRow

End Function

I'm not exactly sure where to fix this issue.
2ND EDIT:

What are the "next sheet" and "last sheet" exactly? You might need to provide the code which calls AssignNextRow() -Tim Williams

Private Sub DailyTransfer()
    Dim dailyRange As Variant
    dailyRange = Worksheets("Daily").Range("A3:D23").Value
    Dim x As Integer, y As Integer, z As Integer, projectName As String
    Dim entryDate As Date
    x = 1
    y = 1
    z = 1
    For x = 1 To 20
projectName = dailyRange(x, 2)
entryDate = dailyRange(x, 1)
If projectName = "" Then Exit For
If WkshtCheck(projectName) = False Then Call WkshtMake(projectName, entryDate)
For y = 1 To 4
Dim emptyRow As Range
Set emptyRow = AssignNextRow(projectName)
emptyRow(1, z).Value = dailyRange(x, y)
If y = 1 Then y = y + 1
z = z + 1
Next y
    Next x
End Sub


This should do it as long as there's always a value in ColA
Set firstEmptyRow = projectSheet.Range(Cells("A" & projectSheet.Rows.count) _
  .End(xlUp).Offset(1, 0).Resize(1,4)