Это отличный пример, чтобы узнать, что такое «сфера действия». Вы объявляете (или создаете) переменную, такую как диапазон, который вы пытаетесь создать. Он живет внутри макроса (или подпроцедуры), который вы сделали. Однако, когда подпроцедура завершена, ваша переменная больше не имеет места для жизни и выселяется (выпадает из памяти вашего компьютера).
К сожалению, то, как вы закодировали ваши макросы, не будет работать так, как вы надеетесь, что они работают. Ваши myRanges будут умирать каждый раз, когда они достигнут End Sub.
Также при передаче аргументов (ваших байлов) в другую подпроцедуру (в данном случае ваш TieOut) вы должны указать правильное количество аргументов. Ваша процедура TieOut в настоящее время требует два. Вы не можете пройти одно, а затем другое. Правильный путь будет выглядеть примерно так:
Call TieOut(myRange.Rows.Count, myRange.Columns.Count)
Также вы пытаетесь вызвать процедуру с именем TieOut2. Не уверен, что это опечатка, но важно правильно указывать имена процедур.
VBA очень мощный и, на мой взгляд, заслуживает изучения. Ты выглядишь так, будто царапаешь поверхность. Я определенно искал бы некоторые учебники VBA онлайн. Сосредоточьтесь на вызове процедур, объявлении переменных и области видимости, и я гарантирую, что вы сможете решить вашу проблему: D