Нашел неплохой макрос, позволяющий проводить поиск по введенным буквам запроса (в данном случае улиц, см. Пример1) и выбору подходящего из выпадающего списка снизу. Сам макрос работает хорошо, однако часто вылезает ошибка "Индекс вне заданного диапазона" или "Subscript out of range". Данное можно увидеть, например нажав на уже заполненную макросом ячейку C3 на листе Otchet. Не подскажете в чем состоит причина ошибки и возможно ли её точечно исправить? Либо же проще написать весь код с нуля?
Небольшое замечание, но тем не менее: данный макрос не позволяет вернуть уже проведенные действия (словом, функция Ctrl+Z всегда недоступна). Не подскажете что может являться причиной данной ошибки?
Буду благодарен за любое содействие, спасибо.
Доброго времени суток и с новым годом!
Нашел неплохой макрос, позволяющий проводить поиск по введенным буквам запроса (в данном случае улиц, см. Пример1) и выбору подходящего из выпадающего списка снизу. Сам макрос работает хорошо, однако часто вылезает ошибка "Индекс вне заданного диапазона" или "Subscript out of range". Данное можно увидеть, например нажав на уже заполненную макросом ячейку C3 на листе Otchet. Не подскажете в чем состоит причина ошибки и возможно ли её точечно исправить? Либо же проще написать весь код с нуля?
Небольшое замечание, но тем не менее: данный макрос не позволяет вернуть уже проведенные действия (словом, функция Ctrl+Z всегда недоступна). Не подскажете что может являться причиной данной ошибки?
Буду благодарен за любое содействие, спасибо.walkinghome
данный макрос не позволяет вернуть уже проведенные действия (словом, функция Ctrl+Z всегда недоступна). Не подскажете что может являться причиной данной ошибки?
Причина в том, что никакой ошибки нет. Макрос (любой) и "функция Ctrl+Z", вещи не совместимые.
данный макрос не позволяет вернуть уже проведенные действия (словом, функция Ctrl+Z всегда недоступна). Не подскажете что может являться причиной данной ошибки?
Причина в том, что никакой ошибки нет. Макрос (любой) и "функция Ctrl+Z", вещи не совместимые.RAN
Дык и этот код рабочий. Все дело в том, что сначала идет запись данных, и только потом получение этих данных (GetArray). И, при определенных условиях, aSpisok пустой. Что и дает ошибку. Достаточно передвинуть GetArray в начало. [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ListBox1.Visible = False If Target.Count > 1 Then Exit Sub If Not Intersect(ActiveCell, Range("C3:C8")) Is Nothing Then GetArray With TextBox1 .Value = Empty If Target <> "" Then .Value = Target .Top = ActiveCell.Top .Width = ActiveCell.Width .Left = ActiveCell.Left .Height = ActiveCell.Height + 2 .Font.Size = ActiveCell.Font.Size .Visible = True .Activate End With Else: TextBox1.Visible = False: ListBox1.Visible = False End If
End Sub
[/vba]
Дык и этот код рабочий. Все дело в том, что сначала идет запись данных, и только потом получение этих данных (GetArray). И, при определенных условиях, aSpisok пустой. Что и дает ошибку. Достаточно передвинуть GetArray в начало. [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ListBox1.Visible = False If Target.Count > 1 Then Exit Sub If Not Intersect(ActiveCell, Range("C3:C8")) Is Nothing Then GetArray With TextBox1 .Value = Empty If Target <> "" Then .Value = Target .Top = ActiveCell.Top .Width = ActiveCell.Width .Left = ActiveCell.Left .Height = ActiveCell.Height + 2 .Font.Size = ActiveCell.Font.Size .Visible = True .Activate End With Else: TextBox1.Visible = False: ListBox1.Visible = False End If