У меня есть проект VBA, который работал. Я думаю, что единственным изменением было перемещение переменной из локальной в глобальную. Строка является параметром для подпрограммы. Теперь я понимаю, почему? «База данных» - это один из листов в рабочей книге ...
Она работала раньше, и я только что перешел с объявления локальных переменных на переменные глобальные (Publi c Const). При наведении курсора на переменные отображается sh = "Database" и rng = "C9: AK47", как и ожидалось. Кроме того, этот лист и диапазон находятся в активной рабочей книге.
--- ошибка: строка «Установить» под ошибками отображается как «индекс не в диапазоне» --- вопрос: почему? Извините, я не совсем ясно, но это работало, и я просто изменил одну вещь ...
''' globals
Option Explicit
Public Const gshDb As String = "Database"
Public Const grgDb As String = "C9:AK47"
''' call
breakFormulas True, gshDb, grgDb
''' sub
Sub breakFormulas(switch As Boolean, sh As String, rng As String)
Dim shRng As Range
Set shRng = Sheets(sh).Range(rng) ' yellow highlighted error - subscript out of range