Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.94/88: Рейтинг темы: голосов - 88, средняя оценка - 4.94
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828

Удаление в массиве

28.05.2020, 11:45. Показов 18465. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья как можно удалить строку в массиве? в примере третью строку массива нужно убрать, четвертую соответственно поднять к второй и выгрузить на страницу. Спасибо ребята


Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub q()
Dim a As Variant
a = Range(Cells(5, 6), Cells(8, 6))
 
For i = LBound(a) To UBound(a)
If a(i, 1) = "Три" Then
a(i).Clear  ??????
End If
Next
End Sub
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.05.2020, 11:45
Ответы с готовыми решениями:

Удаление текста после ALT+Enter либо удаление дублей в массиве
подзадача заключается в том, чтобы после определенного символа в моем случае это "ALT+Enter" удалить все слова внутри ячейки....

Удаление столбца в массиве
Помогите пожалуйста, как можно удалить из двумерного массива N x M столбцов которые содержат нули?

Удаление элементов в массиве
Помогите, пожалуйста, решить задачки.. 1.В числовом массиве из 10 элементов, заданных случайным образом от -100 до 100: а) удалить...

57
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
29.06.2020, 12:41
Студворк — интернет-сервис помощи студентам
mor_sergey, хорошо, перечитаю всю переписку и вечером что-то скажу.
но счас гляжу на переписку....не всё ясно. Если попрошу у вас написать весь ваш алгоритм по пунктам, что вы желаете? Получится у вас? Именно математику, а не прорамму...

а ii - это ваша переменная ))))))
0
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
29.06.2020, 12:51  [ТС]
vedunasv,


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim ss As Variant, SortData As Variant
     Data = Sheets("DATA").ListObjects("Data").DataBodyRange- рабочая страница
            
 ReDim ss( LBound(Data ) To UBound(Data ,  LBound(Data , 2) To UBound(Data , 2))- массив, в котором будут только строки с "Yes" (наверное это лишнее)
   For i = LBound(Data ) To UBound(Data )
   If Data (i, 10) = "Yes" Then
   X = X + 1
     For ii = LBound(Data , 2) To UBound(Data , 2)
 
        
            ss(X, ii) = Data (i, ii)-перегонка обоих измерений
        
    Next
     End If
    Next
   ReDim Preserve ss(LBound(Data ) To X, LBound(Data , 2) To UBound(Data , 2))- пытаюсь обрезать
мне бы обрезать хотя бы как или покомпактнее код
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
29.06.2020, 14:17
mor_sergey, зачем вообще перекладывать в другой массив? Что с ним будете далее делать?
Почему не хотите переложить в этом же массиве? Тем более что пример выше уже есть, только добавить туда цикл по строке, который тоже уже тут есть.
0
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
29.06.2020, 14:26  [ТС]
Hugo121, не выходит у меня работать с одним и тем же массивом...не режется он....впрочем как и другой...не знаю как правильно сделать....
я "обрезал" уже конечно....тупо посчитав кол-во строк (n) с Yes в отдельном цикле и подогнав размерность
Visual Basic
1
 ReDim ss( LBound(Data ) To n,  LBound(Data , 2) To UBound(Data , 2))


но так ведь не делается
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
29.06.2020, 14:27
А ответить на вопрос можете?
0
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
29.06.2020, 14:31  [ТС]
Hugo121, вывалю на лист.
в этом же массиве не хватает толку.....пресервы ругаются
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
29.06.2020, 14:32
Так в том и дело - я показал как вывалить на лист, и никакие пресервы не нужны, и память сэкономишь...
0
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
29.06.2020, 14:34  [ТС]
Hugo121, это как это....без пресервов
это я не понял потому что
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
29.06.2020, 14:35
Собираешь нужные/отобранные данные в верхней части этого же массива, и эту верхушку выгружаешь на лист.
Нет необходимости объявлять другой массив, высчитывать его размер, обрезать (это вообще лишнее если вываливать на лист)...

Добавлено через 54 секунды
Что делает пресерв? И зачем это в этой задаче? Ну вот зачем? тем более что низ оно не режет, а только правый бок!
0
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
29.06.2020, 14:42  [ТС]
Hugo121,это да...и не понятно как низ отрезать...ну да ладно...
не пойму как это осуществить, простите
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
29.06.2020, 15:09
Зачем отрезать низ, если выгружаете только верх?!!!!
0
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
29.06.2020, 15:15  [ТС]
Hugo121, вот что у меня получилось...абсолютно рабочий код...просто много лишнего...не знаю как сократить или сделать по-вашему

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
  For w = 1 To UBound(SortData) '__________массив по условию
      If SortData(w, 10) = "Yes" Then n = n + 1
       Next
    ReDim ss(LBound(Data) To n, LBound(Data, 2) To UBound(Data, 2))
   For i = LBound(SortData) To UBound(SortData)
   If SortData(i, 10) = "Yes" Then
   X = X + 1
     For ii = LBound(SortData, 2) To UBound(SortData, 2)
            ss(X, ii) = SortData(i, ii)
             Next
      End If
    Next '__________массив по условию
Добавлено через 1 минуту
границу считает в отдельном цикле
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
29.06.2020, 15:22
Сделайте файл - напишу код. Если дождь начнётся, а то жара тут... 30 у компа, невозможно...
0
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
29.06.2020, 15:33  [ТС]
Hugo121, придется прибегнуть к танцам с бубном...чтобы послал в Вашу сторону дождь...а у нас жара спала и хорошо мне...вороны каркают только

файл не буду делать...запутано все уж очень у меня....функционал работает...да и наплюйте больно. через коленку, но все же работает...хотелось бы конечно узнать как оно по-правильному будет, но....файл делать не буду
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
29.06.2020, 20:01
Дождь пришёл, спасибо за бубен
Можно докрутить код из https://www.cyberforum.ru/post14682119.html , там только перебора по строке нет,но раз не надо то и ладно.
0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
29.06.2020, 22:18
mor_sergey, так не пойдёт (((

Цитата Сообщение от vedunasv Посмотреть сообщение
Если попрошу у вас написать весь ваш алгоритм по пунктам, что вы желаете? Получится у вас? Именно математику, а не прорамму...
А Вы снова кидаете свою прогу. А не математику.
Если Вы желаете настоящей помощи, то хоть немного идите нам на встречу. Выполняйте наши подсказки.
По моей просьбе Вы должны (извиняюсь за слово ДОЛЖНЫ, но это вам нужна помощь) были написать следущее (предполагаю такой вариант задачи. Пишу от вашего имени:

1. у меня есть таблица в экселе
2. там - такие-то строки и столбцы - есть данные.
3.среди них встречаются пустые строки, столбцы, ячейки.....
4. я желаю удалить все промежуточные пустые строки (или что там), после чего оставшая информация должна сжаться.
5. вся новая инфа должна (а может быть - и пропустить этот пункт) переместиться на новый лист с таким-то названием.
6. прикладываю исходную таблицу
7. прикладываю конечную таблицу.
8. И, только теперь!!!! прикладываю мой код (или списанный с гугл код).
9. этот код ошибается там-то и там-то. Или не получается то-то и это.

10. И только тогда, именно только тогда, как подтвердил коллега из КФ Burk - выполнится оператор
Цитата Сообщение от vedunasv Посмотреть сообщение
if label1+label2= babaaxxxxx then
.
А этот человек Burk очень мудр - недаром работает в медицине, (мне за ним не угнаться)-к его мнению надо прислушиваться..

Вот так примерно от вас должна была поступить ПОСТАНОВКА задачи.
0
77 / 11 / 0
Регистрация: 28.03.2018
Сообщений: 828
29.06.2020, 22:32  [ТС]
vedunasv, спасибо вам обоим уважаемые господа. да я вроде сделал уже. сложеого ничего нк было. обычным перебором ячеек элементарно делается...но ведь это долго . а я уже на работу с памятью перехожу
Hugo121, и все равно я не понимаю как это докрутить
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
29.06.2020, 22:56
Да вот это своё добавляете
Visual Basic
1
2
3
For ii = LBound(SortData, 2) To UBound(SortData, 2)
            ss(X, ii) = SortData(i, ii)
             Next
только к исходному массиву, ну и выгрузку скорректировать по ширине.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.06.2020, 22:56

Удаление последовательностей в массиве
В одномерном массиве удалить все последовательности, элементы которых отличаются не более чем на 4 Например дан массив: 9 1 2 4 3 8 17 1...

Удаление дублей в массиве
Помогите, пожалуйста.:wall: Берем два столбца с листа, записываем их в массив, и нужно очистить этот массив от дублей. Как это...

Удаление элемента в массиве
Дан массив a из n элементов и число k. Удалить из этого массива все элементы, равные k. Порядок элементов должен сохраниться в соответствии...

Удаление столбца в массиве
2 Двухвимирний массив действительных чисел. Заполнить числами в диапазоне от -50 до 200, вывести на экран и удалить столбик с указанным...

Удаление с k по m элементов в массиве
Дан массив a из n элементов. Необходимо удалить элементы начиная с k-го и заканчивая элементом с индексом m. Нумерация элементов массива...


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

Или воспользуйтесь поиском по форуму:
58
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru