Ok so I've figured out where I failed here, as embarassed as I am to admit it!
When I checked what values I was actually trying to feed Openpyxl the error was clear, the "r" variable was a string full of data rather than an integer. Using a simple "rowcount" like..
rowcount = 0
for r in ws.rows:
firstname = ws.cell(row = rowcount, column = 0)
lastname = ws.cell(row = rowcount, column = 1)
rowcount = rowcount + 1
print firstname.value, lastname.value
Seems to have done the trick.