# Loops and variables and spreadsheet blocks

**URL:** <https://community.thunkable.com/t/loops-and-variables-and-spreadsheet-blocks/186836>\
**Category:** Questions about Thunkable X\
**Created:** [August 19, 2019, 5:43am UTC](https://community.thunkable.com/t/loops-and-variables-and-spreadsheet-blocks/186836 "2019-08-19T05:43:17Z")\
**Posts on this page:** 1\
**Showing post:** 15

<div class="post-metadata">

**Author:** ![Mark](https://sea1.discourse-cdn.com/flex015/user_avatar/community.thunkable.com/mark/32/18133_2.png) [@Mark](https://community.thunkable.com/u/Mark)\
**Post date:** [August 22, 2019, 6:59pm UTC](https://community.thunkable.com/t/loops-and-variables-and-spreadsheet-blocks/186836/15 "2019-08-22T18:59:43Z")

</div>

![21%20AM](https://us1.discourse-cdn.com/flex015/uploads/thunkable/original/3X/5/8/58c5793ef4f40ef24c15b5972a1a8a228820127f.png)

So, I think there are a few things going on with the referenced blocks. The first, as @renren66 mentions, is the use of separate variables within the loop rather than the ones that the loop provides by default. The second is the explicit `change` change blocks to increment the variables. The loop block will do that for you automatically.

The last is a bit more complicated. Fortunately I wrote something up on this previously, so please take a look at [Asynchronous Blocks within Loops](http://community.thunkable.com/t/asynchronous-blocks-within-loops/33524). It refers to the `Realtime DB` component rather than the `Spreadsheet` component but the concept is the same.

Hope this helps.

-Mark

---

_[View the full topic](https://community.thunkable.com/t/loops-and-variables-and-spreadsheet-blocks/186836)._
