В качестве более быстрой альтернативы вы можете использовать Power Query.
Добавьте ваши параметры в таблицу:
+-------+-------+--------+-------+-------+--------+-------+-------+--------+
| MIN_D | MAX_D | STEP_D | MIN_W | MAX_W | STEP_W | MIN_H | MAX_H | STEP_H |
+-------+-------+--------+-------+-------+--------+-------+-------+--------+
| 1 | 11 | 1 | 1 | 101 | 1 | 1 | 181 | 1 |
+-------+-------+--------+-------+-------+--------+-------+-------+--------+
Теперь добавьте запрос:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Change Type Numbers" = Table.TransformColumnTypes(Source,List.Transform(Table.ColumnNames(Source), each {_, Int64.Type})),
ListDepth = List.Numbers(#"Change Type Numbers"[MIN_D]{0},(#"Change Type Numbers"[MAX_D]{0}-#"Change Type Numbers"[MIN_D]{0})/#"Change Type Numbers"[STEP_D]{0}+1,#"Change Type Numbers"[STEP_D]{0}),
ListWidth = List.Numbers(#"Change Type Numbers"[MIN_W]{0},(#"Change Type Numbers"[MAX_W]{0}-#"Change Type Numbers"[MIN_W]{0})/#"Change Type Numbers"[STEP_W]{0}+1,#"Change Type Numbers"[STEP_W]{0}),
ListHeight = List.Numbers(#"Change Type Numbers"[MIN_H]{0},(#"Change Type Numbers"[MAX_H]{0}-#"Change Type Numbers"[MIN_H]{0})/#"Change Type Numbers"[STEP_H]{0}+1,#"Change Type Numbers"[STEP_H]{0}),
#"Make Table" = Table.FromList(ListDepth,Splitter.SplitByNothing(),{"Depth"}),
#"Add Width" = Table.AddColumn(#"Make Table", "Width", each ListWidth),
#"Expand Width" = Table.ExpandListColumn(#"Add Width", "Width"),
#"Add Height" = Table.AddColumn(#"Expand Width", "Height", each ListHeight),
#"Expanded Height" = Table.ExpandListColumn(#"Add Height", "Height"),
#"Change Type Text" = Table.TransformColumnTypes(#"Expanded Height",List.Transform(Table.ColumnNames(#"Expanded Height"), each {_, type text})),
#"Added Output" = Table.AddColumn(#"Change Type Text", "Output", each Text.Combine({"BLOCK",[Height],[Width],[Depth]}," - "), type text),
#"Removed Other Columns" = Table.SelectColumns(#"Added Output",{"Output"})
in
#"Removed Other Columns"