An Herbrand structure $\mathfrak U$ for a certain language $\mathcal L$ is a structure made of "syntactical stuff".
Thus, constants of the language plays a double role : they are "names" in the language to denote objects and thy are the "objects" themselves. And so on with "complex" terms buit up from constants and function symbols.
In the FOL language for arithmetic with $0,S$ as symbols, where $S$ is the successor function (symbol), we have that the constant (symbol) $0$ denotes the number $\text {zero}$. The term $S(0)$ denotes the number $\text {one}$, and so on.
The numbers are not symbols but "objects". You have the numerals : $0,S(0),S(S(0)), \ldots$ They are the symbols of the language and denote the numbers. Usually, we introduce abbreviations for numerals (I'll "overline" them to stress the difference with the numbers) : $\overline 1$ as abbreviation for $S(0)$; $\overline 2$ for $S(S(0))$, and so on.
Having said that, the corresponding Herbrand structure $\mathfrak U$ will have universe $U = \{ 0,S(0),S(S(0)), \ldots \}$, where the constant $0$ of the language is interpreted with the "object" $0 ∈ U$ and the (unary) function symbol $S$ will be interpreted as : $S^U(t)=S(t)$, for every variable-free term $t$.
Nothing different if the language has also the (binary) function symbols : $+,×$.
Having said that, to :
does formulas in Herband structures have variables?
the answer is : yes, of course. The rule for forming formulae are part of the syntax of the language $\mathcal L$ and they do not change with different interpretations.
Consider again the language for arithmetic as above; the following formulae: $x=0$ and $x=S(0)$ are simple examples.
The issue is: how we interpret them ? As usual; by way of the defined interpretation and using variable assignment functions.
If we are using the Herbrand structure to interpret the language, the constant symbol $0$ will "interpret itself".
And what about variables ? Consider the function $v : \text {Var} \to U$ (recall that the domain is $U$ and not $\mathbb N$) such that $v(x)=0$.
Clearly :
$U \vDash (x=0)[v]$, while: $U \nvDash (x=S(0))[v]$
because the variable assignment function $v$ assigns the "object" $0$ of the domain $U$ of the Herbrand structure to the variable $x$ and the interpretation of the Herbrand structure assigns the same "object" to the constant $0$ of the language.
The interpretation defined by the Herbrand structure assigns to the the term $S(0)$ the "object" $S^U(0)=S(0) \in U$; but the term $S(0)$ (the syntactical object) is not the same as the constant $0$, and thus the function $v$ above does not satisfy the formula $x=S(0)$.