ник: Анатолий (Киев)
Так у вас значение в ячейке 19,43, а видите 19,00? Или в ячейке уже 19,00?
Думаю - второе. И проблема из-зи десятичного разделителя ",". Функция VAL понимает только ".".
Попробуйте вместо Val((Nz(!Pay_Summa))):
CDbl(Nz(!Pay_Summa,0))
или
IIF(IsNumeric(!Pay_Summa), !Pay_Summa, 0)
PS. А зачем такая конструкция?:
xl.Range(xl.cells(row, 11), xl.cells(row, 11)).SELECT
xl.ActiveCell.NumberFormat = "#,##0.00"
Может так проще?
xl.cells(row, 11).NumberFormat = "#,##0.00"