Since your parameter `i` in `Button` is outside Table, it is not a number anymore. However you could do e.g. this : Button["Number: " <> ToString @ #, Print @ #] & /@ Range[5] If there is a need for `i` parameter one can do this : Button["Number: " <> ToString @ #, Print @ # ] & /@ Table[i, {i, 5}] As it was stated the system doesn't evaluate `i` inside `Button` because of its `HoldRest` attribute.