Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Maria190
0 / 0 / 0
Регистрация: 08.04.2018
Сообщений: 12
#1

Выход за границы массива - VBA

22.04.2018, 18:06. Просмотров 156. Ответов 12
Метки нет (Все метки)

Выход за пределы массива, как исправить, подобная вещь и в C#


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub pol(ByRef a() As Integer, ByRef b() As Integer, ByVal n As Integer, ByVal m As Integer)
Dim i As Integer, j As Integer, t As Integer
Randomize
For i = 0 To n - 1
For j = 0 To m - 1
If a(i, j) Mod 2 = 0 Then
                    [B] b(t) = a(i, j)[/B]
                     Else
                     b(t) = 1
t = t + 1
End If
 
Next
Next
 
End Sub
Private Sub CommandButton1_Click()
Dim a() As Integer
Dim b() As Integer
Dim n As Integer
Dim m As Integer
n = CInt(InputBox("Введите количество строк"))
m = CInt(InputBox("Введите количество столбцов"))
ReDim a(n - 1, m - 1) As Integer
vvodmath a, n, m
vivodform a, n, m, ListBox1
pol a, b, n, m
vivododnon b, n, ListBox2
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2018, 18:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выход за границы массива (VBA):

Использую UBound для определения границы массива, но выдает Subscript out of Range
Передаю в процедуру массив по ссылке. В ней использую UBound для определения...

Перебор элементов массива. Выход за диапазон
Добрый день всем! Не могу понять, как мне правильно написать код, чтобы не...

Выход за границы массива
Программа должна записать в файл bb.out измененный массив tape. В функции...

Выход за границы массива
Доброго времени суток. Начинаю писать на Java, возникла задача взять русский...

Выход за границы массива
Задание: Составить программу для вычисления величины S по заданной формуле: ...

Выход за границы массива
Помогите реализовать идею. Есть число, например, 001.002.003. Мне надо...

12
Остап Бонд
573 / 374 / 180
Регистрация: 17.08.2017
Сообщений: 908
22.04.2018, 18:29 #2
Maria190, а Вы где-то задавали размер массива b()?
0
Maria190
0 / 0 / 0
Регистрация: 08.04.2018
Сообщений: 12
22.04.2018, 18:30  [ТС] #3
Остап Бонд, Кажется нет, но он формируется из a()
0
Остап Бонд
573 / 374 / 180
Регистрация: 17.08.2017
Сообщений: 908
22.04.2018, 18:32 #4
И чему удивляетесь после этого?
0
Maria190
0 / 0 / 0
Регистрация: 08.04.2018
Сообщений: 12
22.04.2018, 18:42  [ТС] #5
Остап Бонд, прописав размерность ошибка осталась в этой строке
Цитата Сообщение от Maria190 Посмотреть сообщение
vivododnon b, n, ListBox2
0
Остап Бонд
573 / 374 / 180
Регистрация: 17.08.2017
Сообщений: 908
22.04.2018, 19:38 #6
Maria190, откуда мне знать, что у Вас осталось и что такое vivododnon?
0
Maria190
0 / 0 / 0
Регистрация: 08.04.2018
Сообщений: 12
22.04.2018, 19:44  [ТС] #7
Остап Бонд, это кусочек кода, вывод одномерного массива в ListBox
Visual Basic
1
2
3
4
5
6
Public Sub vivododnon(ByRef b(), ByVal n As Integer, ByVal L As Object)
Dim t As Integer
For t = 0 To UBound(b)
L.AddItem b(t)
Next
End Sub
0
Остап Бонд
573 / 374 / 180
Регистрация: 17.08.2017
Сообщений: 908
22.04.2018, 19:47 #8
Замечательно
Теперь осталось выпросить текст ошибки.
0
Maria190
0 / 0 / 0
Регистрация: 08.04.2018
Сообщений: 12
22.04.2018, 20:08  [ТС] #9
Остап Бонд, подобная гадость)
0
Миниатюры
Выход за границы массива  
Остап Бонд
573 / 374 / 180
Регистрация: 17.08.2017
Сообщений: 908
22.04.2018, 20:27 #10
Догадайтесь, почему здесь нет ошибки
Цитата Сообщение от Maria190 Посмотреть сообщение
Sub pol(ByRef a() As Integer, ByRef b() As Integer, ByVal n As Integer, ByVal m As Integer)
а здесь есть
Цитата Сообщение от Maria190 Посмотреть сообщение
Public Sub vivododnon(ByRef b(), ByVal n As Integer, ByVal L As Object)
Подсказка выделена
0
Maria190
0 / 0 / 0
Регистрация: 08.04.2018
Сообщений: 12
22.04.2018, 20:37  [ТС] #11
Остап Бонд, Ошибка конечно глупейшая, но не могли бы вы меня еще чуть поучить объявлению количества элементов
0
Миниатюры
Выход за границы массива  
Остап Бонд
573 / 374 / 180
Регистрация: 17.08.2017
Сообщений: 908
22.04.2018, 20:47 #12
Цитата Сообщение от Maria190 Посмотреть сообщение
ReDim a(n - 1, m - 1) As Integer
Объявили двухмерный массив

Visual Basic
1
2
3
REDIM b(4)'Объявляем линейный массив (с нулевыми значениями)
 
REDIM PRESERVE b(5)'ПЕРЕОБЪЯВЛЯЕМ ТОТ ЖЕ МАССИВ С СОХРАНЕНИЕМ НАЖИТОГО РАНЕЕ НЕПОСИЛЬНЫМ ТРУДОМ
0
Maria190
0 / 0 / 0
Регистрация: 08.04.2018
Сообщений: 12
22.04.2018, 21:00  [ТС] #13
Остап Бонд, Как же это сложно, спасибо вам за помощь.
0
22.04.2018, 21:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2018, 21:00
Привет! Вот еще темы с решениями:

Выход за границы массива
Найдите пожалустай в чем ошибка? ошибка времени выполнения индекс находится за...

Выход за границы массива
Написал программу , которая подсчитывает количество слов, но она выдает ошибку...

Выход за границы массива
Выхожу за пределы массива, но вот только не понимаю как. #include <iostream>...

Выход за границы массива
хочу создать массив, который наполняеться элементами введенными с клавиатуры. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru