Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Список ActiveX игнорирует данные других листов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Список ActiveX игнорирует данные других листов (Макросы/Sub)
Список ActiveX игнорирует данные других листов
Dalm Дата: Понедельник, 11.12.2023, 21:37 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 59
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Здравствуйте.
Помогите изменить выпадающий список ActiveX
Почему-то этот список не работает с другим листом.

Список ActiveX(комбибокс) - находится на Лист2
Данные , которые мне нужны в нем - я пытаюсь взять с "Лист St"
Но не получается, макрос игнорирует ссылку на другой лист и продолжает считывать данные с текущего листа.

Как поправить макрос, чтобы данные на другом листе - нормально считывались ?

Вот эта ссылка на другой лист - игнорируется
[vba]
Код

With ThisWorkbook.Worksheets("Лист St")
Arr1 = Range("G11:G40")
Arr2 = Range("A1:A2")
End With
[/vba]

Весь код выглядит так:
[vba]
Код


Private Sub ComboBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    On Error Resume Next
    ComboBox1.Height = 20
    ComboBox1.Width = 700
    
Dim Arr1() As Variant
Dim Arr2() As Variant
Dim ОбьединенныйМассив() As Variant

With ThisWorkbook.Worksheets("Лист St")
Arr1 = Range("G11:G40")
Arr2 = Range("A1:A2")
End With

ОбьединенныйМассив = CombineArrays(Arr1, Arr2)
ОбьединенныйМассив = DeleteBlankRows(ОбьединенныйМассив)

myArray = WorksheetFunction.Transpose(ОбьединенныйМассив)
        Worksheets("Лист2").ComboBox1.List = myArray
    
End Sub
[/vba]
К сообщению приложен файл: 0630736.xls (63.5 Kb)


Сообщение отредактировал Dalm - Вторник, 12.12.2023, 05:06
 
Ответить
СообщениеЗдравствуйте.
Помогите изменить выпадающий список ActiveX
Почему-то этот список не работает с другим листом.

Список ActiveX(комбибокс) - находится на Лист2
Данные , которые мне нужны в нем - я пытаюсь взять с "Лист St"
Но не получается, макрос игнорирует ссылку на другой лист и продолжает считывать данные с текущего листа.

Как поправить макрос, чтобы данные на другом листе - нормально считывались ?

Вот эта ссылка на другой лист - игнорируется
[vba]
Код

With ThisWorkbook.Worksheets("Лист St")
Arr1 = Range("G11:G40")
Arr2 = Range("A1:A2")
End With
[/vba]

Весь код выглядит так:
[vba]
Код


Private Sub ComboBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    On Error Resume Next
    ComboBox1.Height = 20
    ComboBox1.Width = 700
    
Dim Arr1() As Variant
Dim Arr2() As Variant
Dim ОбьединенныйМассив() As Variant

With ThisWorkbook.Worksheets("Лист St")
Arr1 = Range("G11:G40")
Arr2 = Range("A1:A2")
End With

ОбьединенныйМассив = CombineArrays(Arr1, Arr2)
ОбьединенныйМассив = DeleteBlankRows(ОбьединенныйМассив)

myArray = WorksheetFunction.Transpose(ОбьединенныйМассив)
        Worksheets("Лист2").ComboBox1.List = myArray
    
End Sub
[/vba]

Автор - Dalm
Дата добавления - 11.12.2023 в 21:37
VovaK Дата: Вторник, 12.12.2023, 09:29 | Сообщение № 2
Группа: Друзья
Ранг: Форумчанин
Сообщений: 116
Репутация: 41 ±
Замечаний: 0% ±

10
Dalm,
ActiveX на листе очень капризный инструмент. Лучше создайте форму и вызывайте её с любого листа по событию SelectionChange. Так проще и безопаснее для Вашего проекта.


Всем удачи. У нас все получится.
С уважением, Владимир.
 
Ответить
СообщениеDalm,
ActiveX на листе очень капризный инструмент. Лучше создайте форму и вызывайте её с любого листа по событию SelectionChange. Так проще и безопаснее для Вашего проекта.

Автор - VovaK
Дата добавления - 12.12.2023 в 09:29
VovaK Дата: Вторник, 12.12.2023, 09:37 | Сообщение № 3
Группа: Друзья
Ранг: Форумчанин
Сообщений: 116
Репутация: 41 ±
Замечаний: 0% ±

10
Dalm,
Оператор With работает для сокращения записи внутри конструкции должно быть продолжение полной записи. У Вас не хватает точек перед Range. Если Вы опускаете точки, то обращаетесь к активному листу.

With ThisWorkbook.Worksheets("Ëèñò St")
Arr1 = .Range("G11:G40")
Arr2 = .Range("A1:A2")
End With


Всем удачи. У нас все получится.
С уважением, Владимир.
 
Ответить
СообщениеDalm,
Оператор With работает для сокращения записи внутри конструкции должно быть продолжение полной записи. У Вас не хватает точек перед Range. Если Вы опускаете точки, то обращаетесь к активному листу.

With ThisWorkbook.Worksheets("Ëèñò St")
Arr1 = .Range("G11:G40")
Arr2 = .Range("A1:A2")
End With

Автор - VovaK
Дата добавления - 12.12.2023 в 09:37
Dalm Дата: Вторник, 12.12.2023, 14:03 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 59
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
У Вас не хватает точек перед Range. Если Вы опускаете точки, то обращаетесь к активному листу.

Не работает.

Проставил точки.
Теперь список вообще ничего не показывает.
К сообщению приложен файл: 67868767.xls (72.0 Kb)
 
Ответить
Сообщение
У Вас не хватает точек перед Range. Если Вы опускаете точки, то обращаетесь к активному листу.

Не работает.

Проставил точки.
Теперь список вообще ничего не показывает.

Автор - Dalm
Дата добавления - 12.12.2023 в 14:03
MikeVol Дата: Вторник, 12.12.2023, 18:29 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация: 61 ±
Замечаний: 0% ±

Excel LTSC 2021 EN
Dalm, Доброго времени суток. А если так?
[vba]
Код
With ThisWorkbook.Worksheets("Лист St")
       Arr1 = .Range("G11:G40").Value
       Arr2 = .Range("A1:A2").Value
End With
[/vba]
Удачи.


Ученик.
 
Ответить
СообщениеDalm, Доброго времени суток. А если так?
[vba]
Код
With ThisWorkbook.Worksheets("Лист St")
       Arr1 = .Range("G11:G40").Value
       Arr2 = .Range("A1:A2").Value
End With
[/vba]
Удачи.

Автор - MikeVol
Дата добавления - 12.12.2023 в 18:29
Dalm Дата: Среда, 13.12.2023, 03:21 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 59
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
MikeVol, А вот теперь заработало.
Спасибо.
 
Ответить
СообщениеMikeVol, А вот теперь заработало.
Спасибо.

Автор - Dalm
Дата добавления - 13.12.2023 в 03:21
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Список ActiveX игнорирует данные других листов (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!