Let $I$ denote a closed (hyper)rectangle in $R^n$ and $f:I \rightarrow \mathbb{R}$ be a bounded function. We use the following notations.
(1) $\nu(f;a)$ is the oscillation of the function $f$ at a point $a \in I$, defined as follows: $$ \nu(f;a) = \lim_{\delta \to 0} \left[ \sup \{ |f(x)-f(y)| : x, y \in B(a;\delta) \cap I \} \right] $$ where $B(a;\delta)$ denotes the open ball of radius $\delta$ centered at $a$.
(2) For a partition $P$ of $I$, $U(f,P)$ and $L(f,P)$ denote the upper and lower Riemann sums of $f$ over $P$. For completeness, the definitions are as follows: $$ U(f,P) = \sum_{R} M_R(f) \cdot V(R), \qquad L(f,P) = \sum_{R} m_R(f) \cdot V(R) $$ where the sums are taken over the set of all subrectangles $R$ formed by P, $V(R)$ denotes the volume of $R$, and $M_R(f) = \sup \{ f(x) : x \in R\}$, $m_R(f) = \inf \{ f(x) : x \in R\}$.
Question:
Suppose there is a number $\epsilon>0$ such that $\nu(f;x) < \epsilon$ for every $x \in I$. Show that there exists a partition $P$ of $I$ such that $U(f,P) - L(f,P) < \epsilon \cdot V(I).$
A have an idea of how to begin the proof, but couldn't proceed after a point. Here is how the argument goes: For every point $x \in I$ choose a rectangular open neighborhood $V_x$. The collection of sets $V_x$ for $x \in I$ is an open cover for $I$, hence it must have a finite subcover $V_1,\ldots,V_m$ by compactness of $I$ in $\mathbb{R}^n$. Denote $V_j \cap I$ by $V'_j$. Then $V'_1,\ldots,V'_m$ is a finite cover for $I$. Since $\nu(f;x) < \epsilon \ \forall x \in V'_j \ \forall j$ I expect we can choose a partition $P$ such that each subrectangle $R$ satisfies $M_R(f) - m_R(f) < \epsilon$ by somehow making use of the rectangles $V'_j$. But I am unable to make this precise since the rectangles $V'_j$ are not closed.