Function fcn_CountDataRows(wsht As Worksheet, AssayColNum As Integer)
Dim RowIndex As Long
ThisWorkbook.Save
RowIndex = 0
Do
RowIndex = RowIndex + 1
Loop Until IsEmpty(wsht.Cells(RowIndex, AssayColNum).Value)
RowIndex = RowIndex - 1
fcn_CountDataRows = RowIndex

MsgBox Title:="Debug -- Row Count", prompt:="Initial Count: " &
InitialDataSheetRowCount _
& vbCrLf & "Current Count: " & RowIndex

End Function

AssayColNum is the column number of a column on wsht that is non-empty for
all rows containing data.

InitialDataSheetRowCount is a module-level public variable. This function
is called from Workbook_Open, result is stored in InitialDataSheetRowCount.

This function is also called from a save-and-close subprocedure, operating
within a shared workbook. The objective, in that context, is to determine
whether or not any other user has added rows to wsht.

The workbook is shared under the default update-on-save option.

The issue: Called from the save-and-close subprocedure, the MsgBox
invariably reports the same value for InitialDatasheetRowCount and RowIndex.
Even when another user has added rows to the wsht (proven by history). It
appears Excel is not actually updating wsht on save.

Has anyone else seen this behavior, or have any suggestions for fixing it.
--
Today is not the worst day of my life.