试试改成这样
If e.NewRange.RowSel >= 0 AndAlso e.OldRange.RowSel <> e.NewRange.RowSel Then If forms("开piao").Opened=True And e.Table.current.DataRow.Rowstate<>dataRowstate.unchanged Then e.Cancel=True End IfEnd If