Страницы: 1
RSS
Объявление переменных в VBA
 
Есть 2 файла, ниже выдержки из кода. В представленном виде все работает, но стоит в первом дописать объявление переменных через «Dim x, y», или во втором эту строку убрать, добавив «Set» перед присвоением значения переменной, как редактор VBA ругается. Подскажите, почему так?  
 
Файл 1 (модуль книги).  
Private Sub Workbook_Open()  
With Worksheets("Лист1")  
.[B:B].ClearContents
Set x = .Columns("A").Find("*", .[A1], searchdirection:=xlPrevious)
 
Файл 2 (модуль листа).  
Option Explicit  
Private Sub Worksheet_Change(ByVal Target As Range)  
Dim x, y  
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
Application.EnableEvents = False    
[B:B].ClearContents
x = Columns("A").Find("*", [A1], searchdirection:=xlPrevious)
 
Во втором случае (если убрать «Set» и добавить «Dim x, y»), то просто не работает код, то есть переменной "x" не назначается значение конца диапазона.  
 
В первом случае (если не указать «Dim x, y»), пишет: "Compile error: Variable not defined"
 
А не объявлены ли случайно в первом файле эти переменные (x и y), как Public?
 
Дим, а меня вот это смутило: "стоит в первом дописать объявление переменных через «Dim x, y»"
 
Везде объявил "Dim x, y as Range" и оставил "Set" - все работает. Спасибо за помощь!
 
А вот это не совсем верно - нужно вот так:  
Dim x as ТИП_ПЕРЕМЕННОЙ, y as Range
 
Не знал, буду исправлять. Спасибо.
Страницы: 1
Читают тему
Наверх