This is just meant to demonstrate the connecting of sheet names to commands. You should connect ALL commands to worksheets, by name or by variable, keeps many a bad things from happening when you do.
Option Explicit
Sub MealCal()
Dim NextRow As Long, LastCol As Long, srcLastRow As Long
Dim Finalrow As Long
Dim wsSRC As Worksheet, wsCURR As Worksheet
'set references to your two sheets for use in the rest of the macro
Set wsCURR = ThisWorkbook.Sheets("MealCal")
Set wsSRC = ActiveSheet
'find next empty row on current sheet
NextRow = wsCURR.Range("A" & Rows.Count).End(xlUp).Row + 1
'find last used column from row 1
LastCol = wsCURR.Range("A" & Columns.Count).End(xlToLeft).Column
' find out how many rows there are in the source sheet
srcLastRow = wsSRC.Range("D" & Rows.Count).End(xlUp).Row
' copy from the source sheet to the currentSheet "mealcal" in the range specified
wsSRC.Range("D1:D" & srcLastRow).Copy wscur.Range("A" & NextRow)
wsSRC.Range("F1").Copy wsCURR.Range("B" & NextRow)
Bookmarks