Its really a bit of trial an error.
This line "Txt = Txt & Chr(10) & Chr(-CLng(v.Validation.InCellDropdown) + 31) & v.Address" is formed by:_
If you just loop throught range, with "v.Validation.InCellDropdown" in the loop it will return "True" if validation cell found, but if not found an error occurs
Start loop with "on error resume next" to override any Errors.
if you then change that line to "-CLng(v.Validation.InCellDropdown" by adding "-Clng" this converts as "string" to a "long" variable, which changes "True " to "-1",by adding a "-" at the front, it changes "-1" to "1"
At the end of the code line the address is returned by "v.address" but you don't want the "1" in front of it. so by adding 31 and "Chr" in front of it , it becomes the "Asci " code chr(32) which equal a blank space, and thats it !!!