Not sure what you are trying to achieve.
But let me take a guess.
You want to access each structure (and its members) via an index variable?
If that is the case, you don't need an Any pointer at all. You can simply access the structure elements directly using the form:-
DB_Test.BLOCKS[<index>].<element_name>{[<element_index>]}
Where <index> is the index for your array of structures, which can be a fixed number of a variable (INT/DINT only though), <element_name> is the structure element names used in your UDT, and <element_index> is an optional index for any arrays in your structure. You can continue down as many levels of structure / arrays as you wish (these are known as levels of indirection in software engineering). So you could have an array of structures than contains in it another array of structures ad inifinitum. To access these, you would just keep adding the structure elements separated by periods '.' (e.g. DBn.structa[indexa].structb[indexb].[...]structn[indexn].element_name ...
E.G.
IF DB_Test.BLOCKS[1].START = XXX THEN or b := DB_Test.BLOCKS[i].Datenbyte[250];
With this, you don't have to worry about the actual address (DBX26.0 BYTE 250 in your case) as the compiler will sort it out for you. This is actually better as using hardcoded addresses is not good programmming practice, as if you change the structure at all, your address will be invalid. This way the addresses will be automatically updated by the compiler if you ever change the structure. The code is also much easier to read and maintain.
Programming today is the race between software engineers building bigger and better idiot proof programs, and the universe producing bigger and better idiots.
So far, the universe is winning...