У меня проблема при использовании переменной , содержащей диапазон.Использование переменной диапазона в нескольких листах
Я объявил переменную «ГСЧ» глобально в модуле рабочей книги:
Public rng As Range
Теперь в модуле рабочего листа я установить переменную после нажатия на флажок и определить диапазон для него:
Sub CheckBox1_Click()
Set rng = Range("D8:Q51")
If Me.OLEObjects("checkbox1").Object.Value Then
Call clear(rng)
Else
Call aus(rng)
End If
End Sub
Я всегда получаю сообщение об ошибке при вызове подлодку «AUS (RNG)», который говорит:
ошибка 438, объект не поддерживает тыс это свойство или метод
«AUS (RNG)» содержит следующий код:
Worksheets(5).rng.Copy Worksheets("aktuell").rng
Btw: с использованием диапазона переменной в том же листе модуль соединен с не выбрасывать ошибка. Таким образом, ошибка как-то должна коррелировать с «Worksheets (5)».
Определить 'rng' в обычном модуле, а не рабочей книги или рабочего листа модуля. – Gareth
@Gareth Когда определяется 'rng', не захватывает ли он книгу и лист по умолчанию? Итак, в основном это похоже на запись 'Set rng = ActiveWorkbook.ActiveSheet.Range (« D8: Q51 »)' ... – Chrismas007
@ Chrismas007 - Даже если бы не было путаницы в родительском wb/ws 'rng',' Call aus (rng) 'пытается переопределить его как принадлежащий к' Worksheets (5) '. Кажется, он используется ближе к 'rng.Address', чем' rng'. Также нет необходимости даже передавать его в качестве параметра, если он объявлен глобально. – Jeeped