Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для E_X_E
1 / 1 / 0
Регистрация: 06.10.2014
Сообщений: 94

Сортировка массива, данные которого помещены в одну ячейку

31.10.2014, 11:47. Показов 1390. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите что я делаю не так. Требуется чтобы программа отсортировала массив который задается в ячейке например 1,1 и показала результат в виде окна уведомления.
Проблема в том что когда я запускаю программу, комп предлагает мне создать новый массив , а когда я закрываю ексель сохранив с поддержкой макросов. При повторном запуске макроса ваще не бывает
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub Laba5var10(A() As Double)
A() = Cells(i, 1)
n% = UBound(A, 1)
q% = 0
    For i% = 1 To n - 1
        If A(i) > A(i + 1) Then
        q% = -1
        tmp% = A(i%)
              A(i%) = A(i% + 1)
              A(i% + 1) = tmp%
        End If
    Next i%
        If q% = 0 Then Exit For
        MsgBox "A()"
    Loop
End Sub
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.10.2014, 11:47
Ответы с готовыми решениями:

При создании CSV данные записываются в одну ячейку
Формируется сначала массив товаров: $plist=array(); foreach ($order_product_query->rows as $product) { ...

Как записать в одну ячейку данные из нескольких строк другой таблицы?
Добрый день, уважаемые форумчане! Подскажите по такому вопросу: нужно в одно поле вывести информацию, состоящую из нескольких строк...

Сдвинуть элементы массива на одну ячейку
Дан массив целых чисел размерности n. Сдвинуть элементы массива на одну ячейку. Первый элемент становится на место последнего. С++ спс)

15
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
31.10.2014, 11:59
Лучший ответ Сообщение было отмечено E_X_E как решение

Решение

массив который задается в ячейке например 1,1
В принципе массив можно записать и в одну ячейку.
Но это будет всего лишь текст.
И просто считав его массива не получится.
Да и не делают так.
В екселе массив записывают располагая каждый элемент в отдельной ячейке
Visual Basic
1
 A() = Cells(i, 1)
В данном случае i глобальная переменная? Чему равна?
1
 Аватар для E_X_E
1 / 1 / 0
Регистрация: 06.10.2014
Сообщений: 94
31.10.2014, 21:12  [ТС]
Ок, а вот что на счет того что при перезапуске екселя макрос куда то пропадает.

Добавлено через 8 минут
А точнее он код компилирует а программу не запускает
0
 Аватар для E_X_E
1 / 1 / 0
Регистрация: 06.10.2014
Сообщений: 94
31.10.2014, 21:24  [ТС]
https://www.cyberforum.ru/atta... 1414779841
Это происходит при нажатии на плей
Миниатюры
Сортировка массива, данные которого помещены в одну ячейку  
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
31.10.2014, 21:34
а вот что на счет того что при перезапуске екселя макрос куда то пропадает
Может быть...
Миниатюры
Сортировка массива, данные которого помещены в одну ячейку  
1
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
02.11.2014, 01:06
Макрос не пропадает - просто это не исполняемый таким образом макрос. Это процедура, которая должна вызываться из другого макроса, указав параметр (вот этот самый несчастный массив А(), с которым непонятно что происходит).
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
02.11.2014, 09:00
Зачет тогда считывать в переманную А значение если массив передан как аргумент?
Visual Basic
1
A() = Cells(i, 1)
1
 Аватар для E_X_E
1 / 1 / 0
Регистрация: 06.10.2014
Сообщений: 94
02.11.2014, 10:35  [ТС]
Я не до конца вас понимаю объясните по лучше как это сделать, и что нам это даст? Пожалуйста не говорите загадками
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
02.11.2014, 12:18
Какие ж загадки. проанализируй каждую строку:

Visual Basic
1
Sub Laba5var10(A() As Double)
На начало процедуры в А находится массив, который передан вызывающей процедурой в качестве аргумента
Visual Basic
1
A() = Cells(i, 1)
В переменную А считали содержимое ячейки Cells(i, 1) активного листа. Тем самым затерев массив.
Что не понятно?
Непонятно только нужна ли в этой процедуре глобальная переменная?
Почему глобальная? По тому, что в этой процедуре она не объявляется и не назначается.
И в лудшем случае (вернее в худшем) если не установлена Option Explicit в этой процедуре значение i будет пустым и вызовет ошибку
Просто удали строку
Visual Basic
1
A() = Cells(i, 1)
1
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
02.11.2014, 17:13
Ну вообще такое может иногда быть нужно - передаём процедуре массив (не важно какой, может с данными, а может пустой), процедура его заполняет и возвращает, далее делаем с ним что угодно.
А вообще - был бы к коду приложен файл, всё было бы понятнее. Я вот пока вообще не пойму, что за массив в ячейке, да и что должно быть показано "в виде окна уведомления" - тоже.
1
 Аватар для E_X_E
1 / 1 / 0
Регистрация: 06.10.2014
Сообщений: 94
03.11.2014, 13:16  [ТС]
В ячейке любой массив не отсортированный , а в окне тот же массив только сортированный

Добавлено через 11 минут
Короче вот задание. У меня даже массив отсортировать не получается...

Дан массив вещественных чисел A[20]. Определить количество различных элементов в массиве, повторяющиеся элементы считать один раз.
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
03.11.2014, 14:15
Зачем "массив в ячейке"? Да и как это вообще будет выглядеть?
Зачем его сортировать?

Ну а задачу я бы делал используя коллекцию, или словарь. Но Вы вероятно это ещё не изучали... Или уже?

Добавлено через 11 минут
С коллекцией примерно так:
Visual Basic
1
2
3
4
5
6
    On Error Resume Next
    For Each el In a
        col.Add el, CStr(el)
    Next
    On Error GoTo 0
    MsgBox col.Count
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
03.11.2014, 14:46
У меня даже массив отсортировать
А разве в задании такое есть?
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
03.11.2014, 15:04
Лучший ответ Сообщение было отмечено E_X_E как решение

Решение

См. вложение
Миниатюры
Сортировка массива, данные которого помещены в одну ячейку  
Вложения
Тип файла: rar Книга37.rar (7.1 Кб, 6 просмотров)
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
03.11.2014, 15:07
Дан массив вещественных чисел A[20]
Это вовсе не значит, чтомассив в одной ячейке.
Обычно пишется так: Дан массив вещественных чисел A(20)
1
 Аватар для E_X_E
1 / 1 / 0
Регистрация: 06.10.2014
Сообщений: 94
03.11.2014, 16:25  [ТС]
Спасибо, извиняюсь за ту фигню которую нес,)) буду разбираться в коде)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2014, 16:25
Помогаю со студенческими работами здесь

Запись ассоативного массива в одну ячейку MySQL
if ($count_subjects==$count_subject_teachers) { for ($i=0; $i<$count_subjects; $i++) { ...

Массив типа char записать в одну ячейку другого массива
Добрый день, есть массив типа char. В нем в одной ячейке элемент 'a', в другой 'b'. Я создать другой массив тоже типа char и чтобы там был...

Как записать значения массива в виде простого текста в одну ячейку в БД?
Друзья, очень прошу помощи - сломала уже весь мозг! Есть массив $cart Array ( => Array ( =>...

Составить программу, по которой машина Поста раздвинет на расстояние в одну ячейку две половины данного массива
На ленте машины Поста расположен массив из 2n ячеек. Составить программу, по которой машина Поста раздвинет на расстояние в одну ячейку две...

"Записать много чисел в одну ячейку массива"
Добрый день, у нас есть ячейка в массиве, размером 4 байта. Мы считываем файл, и нужно по очереди записывать все байты в массив. Когда я...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru