???
Математика на уровне МГУ

Показано с 1 по 3 из 3

Тема: Excel нужна помощь

  1. #1
    Модератор
    Регистрация
    25.09.2008
    Адрес
    Екатеринбург, РФ
    Возраст
    44
    Сообщений
    4,440

    Excel нужна помощь

    Нужна помощь. Может кто знает.

    Собственно дано:
    3 диапазона (как выбирать диапазоны можно прочитать тут: http://www.planetaexcel.ru/tip.php?aid=34, использую способ №2: стандартный):
    Диапазон 1 - базовый, состоит допустим из 2х пунктов выбора a и b.
    При выборе диапазона 1a в ячейке (условно) 1А, в ячейке (условно) 3А, должен выбираться диапазон 2.
    При выборе диапазона 1b в ячейке (условно) 1А, в ячейке (условно) 3А, должен выбираться диапазон 3.


    // CPU:i7-2600K/ MB: ASUS P8P67 DELUXE/ RAM: CMZ8GX3M2A1866C9 (2*4Gb)/ GB GeForce GTX570 1,2Gb [GV-N570OC-13I]/ драйвер:310.90/ 1920 x 1080/ OS: M$ Windows 7 Home Premium x64/ HOTAS Warthog+ВКБ 18-3/ TrackIR4/ FSP 700W.

  2. #2
    Зашедший
    Регистрация
    23.08.2007
    Адрес
    Новороссийск
    Возраст
    44
    Сообщений
    13

    Re: Excel нужна помощь

    На скорую руку набросал макрос, попутно гугля и разбираясь
    Код:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Column = 1 And Target.Row = 1 Then     ' ячейка A1, здесь выбор
            If Target.Text = "1a" Then     ' проверяем, какой диапазон выбран
                Range("A3").Validation.Modify Formula1:="=Диапазон1A"     ' в формулу устанавливаем имя первого диапазона
            Else
                Range("A3").Validation.Modify Formula1:="=Диапазон1B"     ' или второго
            End If
        End If
    End Sub
    Код омерзителен, ибо используются адресация и стандартная, и числовая, и по имени, но, вроде бы, работоспособен. Думаю, можно причесать, но не силен в экселевском бейсике.

  3. #3
    Модератор
    Регистрация
    25.09.2008
    Адрес
    Екатеринбург, РФ
    Возраст
    44
    Сообщений
    4,440

    Re: Excel нужна помощь

    Цитата Сообщение от силентий Посмотреть сообщение
    На скорую руку набросал макрос, попутно гугля и разбираясь
    Код:
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Column = 1 And Target.Row = 1 Then     ' ячейка A1, здесь выбор
            If Target.Text = "1a" Then     ' проверяем, какой диапазон выбран
                Range("A3").Validation.Modify Formula1:="=Диапазон1A"     ' в формулу устанавливаем имя первого диапазона
            Else
                Range("A3").Validation.Modify Formula1:="=Диапазон1B"     ' или второго
            End If
        End If
    End Sub
    Код омерзителен, ибо используются адресация и стандартная, и числовая, и по имени, но, вроде бы, работоспособен. Думаю, можно причесать, но не силен в экселевском бейсике.
    А без макросов, другими путями нельзя сделать? Макросы как то пугают сильно, хотя может и проще, чем кажется.

    UPD:
    нашел, называется если по правильному, то связанные динамические списки.
    Как делают: http://www.planetaexcel.ru/tip.php?aid=64
    Крайний раз редактировалось Andric; 20.10.2012 в 09:00.


    // CPU:i7-2600K/ MB: ASUS P8P67 DELUXE/ RAM: CMZ8GX3M2A1866C9 (2*4Gb)/ GB GeForce GTX570 1,2Gb [GV-N570OC-13I]/ драйвер:310.90/ 1920 x 1080/ OS: M$ Windows 7 Home Premium x64/ HOTAS Warthog+ВКБ 18-3/ TrackIR4/ FSP 700W.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •