powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Нужен человек, готовый ставить задачки по массивам VBA
25 сообщений из 26, страница 1 из 2
Нужен человек, готовый ставить задачки по массивам VBA
    #39614594
194184710311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
В университете, к сожалению, не преподавали VBA. Вынужден самостоятельно его изучать для себя любимого.
Хотелось бы найти человека (несколько человек), который (-ые) ставил (-и) бы задачки от самой простой к сложным. И после проверял выложенный в этом топике ответ. Если неправильный ход мыслей, то писал тут об этом. Если можно как то упростить код, то писал: "А попробуй-ка использовать функцию "Тили - тили, трали-вали"".
Думаю, тем самым, убьём много зайцев, причём не только моих.






Движение вперёд...
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614623
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Практически каждая тема тут - это вполне реальная задача у вполне конкретного человека.

Количество тем, где задача связана с массивами - гораздо больше одной... берёшь любую такую тему, читаешь по одному посту (не заглядывая вперёд), и на каждом шаге пытаешься решить поставленную задачу, используя все прочитанные сведения плюс свои знания. И потом сравниваешь свои предыдущие решения с текущим и с теми решениями, которые предлагают участники.

Заодно порешаешь и проблемы, с массивами не связанные - тоже полезно.
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614634
194184710311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaПрактически каждая тема тут - это вполне реальная задача у вполне конкретного человека.

Количество тем, где задача связана с массивами - гораздо больше одной... берёшь любую такую тему, читаешь по одному посту (не заглядывая вперёд), и на каждом шаге пытаешься решить поставленную задачу, используя все прочитанные сведения плюс свои знания. И потом сравниваешь свои предыдущие решения с текущим и с теми решениями, которые предлагают участники.

Заодно порешаешь и проблемы, с массивами не связанные - тоже полезно.

В Вашей методике есть один большой минус.

Когда что-то начинаешь изучать у тебя сначала мало знаний, потом чуть больше, больше,...и максимум минус эн. Т.е. идёт постепенное накопление и увеличение.
По предложенному Вами сценарию развития увеличение знаний происходит не постепенно, а где-то может скакнуть мощно, а где-то вообще и не скакнуть.
Я хочу сказать, что приятней потихоньку спотыкаться, по крайней мере мне, и вставать, нежели споткнуться 100 раз перекатиться, а завтра даже не споткнуться, вот о чём я.
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614651
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
194184710311,

Почему такая узкая направленность? Почему только массивы.

Вот вам задачка: напишите тетрис. Там и с массивом отлично поработаете, да и сопуствующие темы изучите и удовольствие получите от сделанной работы.
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614672
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
194184710311Когда что-то начинаешь изучать у тебя сначала мало знаний, потом чуть больше, больше,...и максимум минус эн. Т.е. идёт постепенное накопление и увеличение.Противоречия нет. Решение задач предполагает наличие определённых базовых знаний. За ними - в учебник. А потом - к задачкам.
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614706
194184710311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro194184710311,

Почему такая узкая направленность? Почему только массивы.

Вот вам задачка: напишите тетрис. Там и с массивом отлично поработаете, да и сопуствующие темы изучите и удовольствие получите от сделанной работы.

Массивы потому, что, однако, у меня это узкое место...

Сначала чисто массивы. Потом массивы+функции+циклы+...

По поводу литературы...
Пошуршал белыми страницами интернета. Ознакомился с творчеством Джона Уокенбаха. Конкретно с книженцией "Профессиональное программирование на VBA" под офис 2000 и 2010, а в ней с частью 3, посвященной VBA. В часть 5ую не полез ещё. Потому как не понимаю динамические массивы, юбонды, редимы. Не понимаю потому, как не нашел литературы, где был бы простой пример, в котором была бы последовательность действий в динамическом массиве. Туда бы плавно вставляли юбонд, редим и делали картинки результата до юбонда и после, до редима и после. Может есть у кого такая книженция или что-то другое?
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614740
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да блин, это ж в паре строк можно объяснить, что тут огород-то городить
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Dim arr As Variant
ReDim arr(5)
Debug.Print LBound(arr)
Debug.Print UBound(arr)
ReDim arr(10)
Debug.Print LBound(arr)
Debug.Print UBound(arr)
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614741
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и до кучи
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim arr As Variant
ReDim arr(3 To 5)
Debug.Print LBound(arr)
Debug.Print UBound(arr)

arr(3) = 222222
Debug.Print arr(3)
ReDim Preserve arr(3 To 6)
Debug.Print arr(3)
ReDim arr(3 To 7)
Debug.Print arr(3)
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614827
194184710311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProНу и до кучи
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim arr As Variant
ReDim arr(3 To 5)
Debug.Print LBound(arr)
Debug.Print UBound(arr)

arr(3) = 222222
Debug.Print arr(3)
ReDim Preserve arr(3 To 6)
Debug.Print arr(3)
ReDim arr(3 To 7)
Debug.Print arr(3)



хм, а почему во втором примере в окне иммедиэйт вырисовывается 4 строки с числами:
3
5
222222
222222
должно ведь 5, нет?
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614843
194184710311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
194184710311Shocker.ProНу и до кучи
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim arr As Variant
ReDim arr(3 To 5)
Debug.Print LBound(arr)
Debug.Print UBound(arr)

arr(3) = 222222
Debug.Print arr(3)
ReDim Preserve arr(3 To 6)
Debug.Print arr(3)
ReDim arr(3 To 7)
Debug.Print arr(3)



хм, а почему во втором примере в окне иммедиэйт вырисовывается 4 строки с числами:
3
5
222222
222222
должно ведь 5, нет?

походу он очистился, презерве не было заюзано, хм
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614846
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim arr As Variant
ReDim arr(3 To 5)
Debug.Print LBound(arr)
Debug.Print UBound(arr)

arr(3) = 222222
Debug.Print "-=" & arr(3) & "=-"
ReDim Preserve arr(3 To 6)
Debug.Print "-=" & arr(3) & "=-"
ReDim arr(3 To 7)
Debug.Print "-=" & arr(3) & "=-"
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614869
194184710311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim arr As Variant
ReDim arr(3 To 5)
Debug.Print LBound(arr)
Debug.Print UBound(arr)

arr(3) = 222222
Debug.Print "-=" & arr(3) & "=-"
ReDim Preserve arr(3 To 6)
Debug.Print "-=" & arr(3) & "=-"
ReDim arr(3 To 7)
Debug.Print "-=" & arr(3) & "=-"


либо так:
Dim arr As Variant
ReDim arr(3 To 5)
Debug.Print LBound(arr)
Debug.Print UBound(arr)
arr(3) = 222222
Debug.Print arr(3)
ReDim arr(3 To 6)
Debug.Print arr(3)
arr(3) = 222221
ReDim Preserve arr(3 To 7)
Debug.Print arr(3)

на выходе пустая строка, а потом 222221

Лан, если никто задачку не хочет рисовать попробую, сам нарисовать.

Дано:
Табличка 3 строки 3 столбца.
Предусмотреть возможность расширения таблички как по строкам, так и по столбцам.
Найти:
Сумму по каждой строке и по каждому столбцу.
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614876
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем вам массив, вам надо делать коллекцию элементов вашего класса (ну или рекордсет отвязанный, если у ж совсем лень)
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614881
194184710311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneзачем вам массив, вам надо делать коллекцию элементов вашего класса (ну или рекордсет отвязанный, если у ж совсем лень)
Напишите простую задачку на массив, причём динамический...
Если эта не катит.
У меня нет йопыта
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614884
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне это не надо, это вам надо. я вам дал направление для изучения, которое в будущем вам больше пригодится, тк использует ООП подход
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614906
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем не понравился тетрис? Его ж необязательно делать в реальном времени.
Не нравится, можно реализовать пятнашки, лайнс или любую другую статическую игру с игровым полем в виде массива, в качестве отображения массива можно использовать ячейки экселя
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39614946
Фотография Сын вождя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ха! Человек собирается изучать азы на форумах :) Прикольно про университет и самостоятельно :) Эх, лень...
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39615162
194184710311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneмне это не надо, это вам надо. я вам дал направление для изучения, которое в будущем вам больше пригодится, тк использует ООП подход

хорошо, спасибо

Shocker.ProЧем не понравился тетрис? Его ж необязательно делать в реальном времени.
Не нравится, можно реализовать пятнашки, лайнс или любую другую статическую игру с игровым полем в виде массива, в качестве отображения массива можно использовать ячейки экселя

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

Сын вождяХа! Человек собирается изучать азы на форумах :) Прикольно про университет и самостоятельно :) Эх, лень...
круто да? что в регионах, где химия, алюминиевые заводы и т.д. учат языкам программирования, которые используются на местных крупных заводах. и только ты покидаешь пределы своего края, области, ... там уже юзают другие языки программирования. И ты изучал копал под те языки инфу, и тут уже всё с нуля. Каждый человек зеркало. Рад, что в лени Вам весело живётся.
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39615168
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
194184710311боязнь того, что там будет огромный код и я даже не представляю структуру этого кода. сколько процедур, сколько функций, ...Зубов бояться - в рот не давать
Волков бояться - в лес не ходить.
Дорогу осилит идущий.
Даже путь в тысячу ли начинается с первого шага (Лао-Цзы)
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39615899
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
194184710311боязнь того, что там будет огромный код и я даже не представляю структуру этого кода. сколько процедур, сколько функций, ...
я в моркови то ещё не освоен, а Вы мне предлагаете лезть в капусту
я одного новичка примерно так учила ACCESS --с нуля, по скайпу с демонстрацией экрана
сначала --набила некий код и пояснила голосом, ответила на вопросы
затем --ТС вводил код сам, я по экрану контролировала логику и ошибки

остались довольны оба
ТС --почувствовал себя в аксесс довольно уверенно, стал самостоятельно решать освоенные типы заданий
Я --оплатой, ибо занятия длились 2 месяца пр 1-2 часа в будний день
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39616616
194184710311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКА,

Возможно, Ваша методика кому-то подойдёт, а я пошел учиться на своих ошибках.
нашел кучу ресурсов, которые будут полезны начинающим и не только:

http://www.intuit.ru/studies/courses/536/392/lecture/9070

Объектная модель (справочник по VBA для Excel)
https://msdn.microsoft.com/ru-ru/vba/excel-vba/articles/object-model-excel-vba-reference

http://vtit.kuzstu.ru/books/shelf/189/doc/lab.html

http://window.edu.ru/catalog/resources?p_str=vba&p_nr=50

http://www.excelworld.ru/forum/5

https://books.google.ru/books?id=x08RedN6nTwC&pg=PA99&lpg=PA99&dq=Insert Shift:=xlShiftToRight&source=bl&ots=N5TUBpW17U&sig=z1bORoqLnXitVvUVjurhq6h_zQE&hl=ru&sa=X&ved=0ahUKEwi-tavjr8PZAhXDBSwKHZo_BbQQ6AEINDAB#v=onepage&q=Insert Shift:=xlShiftToRight&f=false

Определить последнюю ячейку через VBA:
http://www.excel-vba.ru/chto-umeet-excel/kak-opredelit-poslednyuyu-yachejku-na-liste-cherez-vba/

https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=list&FID=1

http://www.sql.ru/forum

http://www.cpearson.com/Excel/VBAArrays.htm

http://www.excel-easy.com/vba.html

Министерство образования Республики Беларусь
Учреждение образования
«МОГИЛЕВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ПРОДОВОЛЬСТВИЯ»
Кафедра «Информатика и вычислительная техника»
Сборник задач по VBA
Методические указания для студентов всех
специальностей и аспирантов
Могилев

VBA для чайников Стив Каммингс Диалектика, 2002г Москва


Профессиональное программирование на Vba в Excel 2002 Джон Уокенбах Диалектика, 2003 Москва

Профессиональное программирование на Vba 2010 Джон Уокенбах Диалектика, 2012 Москва


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ «МАМИ»
В.И.Калядин Решение задач в Excel на VBA ПРИМЕНЕНИЕ ПРОГРАММНЫХ СРЕДСТВ В ПРОЕКТИРОВАНИИ АВТОМОБИЛЬНЫХ КОНСТРУКЦИЙ
Москва, 2011г



МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Московский государственный машиностроительный университет (МАМИ)
/УНИВЕРСИТЕТ МАШИНОСТРОЕНИЯ/
Н.С.Карташов, А.И.Макаров, Д.А.Макаров
Алгоритмизация и программирование на VBA в Microsoft Excel
Москва, 2012г


Тут и задачи и теория) Так, что все те, кто хочет начать - дерзайте.
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39616617
194184710311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё задачки...
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39621290
194184710311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
194184710311,

Нашел сумму)))

Вот код...

Option Explicit

Sub sumStrStolb()
Dim x As Range, A(), R() As Integer, C() As Integer, i%, j%
Set x = Range("A1").CurrentRegion
A = Range(x.Address)
ReDim R(LBound(A, 1) To UBound(A, 1))
ReDim C(LBound(A, 2) To UBound(A, 2))
For i = LBound(A, 1) To UBound(A, 1)
R(i) = 0
For j = LBound(A, 2) To UBound(A, 2)
If IsNumeric(A(i, j)) Then
R(i) = R(i) + A(i, j)
C(j) = C(j) + A(i, j)
End If
Cells(UBound(A, 1) + 2, j) = C(j)
Next j
Cells(i, UBound(A, 2) + 2) = R(i)
Next i
End Sub


Можно как-то упростить код (сделать так, чтобы при МОЩНОМ заполнении строк и столбцов) просчёт был бы быстрым?
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39621328
194184710311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
194184710311,

ради интереса поигрался уже с обработчиками ошибок)))


Option Explicit
Sub sumStrStolb1()
On Error GoTo handler
Dim x As Range, A(), R() As Integer, C() As Integer, i%, j%
Set x = Range("A1").CurrentRegion
A = Range(x.Address)
ReDim R(LBound(A, 1) To UBound(A, 1))
ReDim C(LBound(A, 2) To UBound(A, 2))
For i = LBound(A, 1) To UBound(A, 1)
R(i) = 0
For j = LBound(A, 2) To UBound(A, 2)
R(i) = R(i) + A(i, j)
C(j) = C(j) + A(i, j)
Cells(UBound(A, 1) + 2, j) = C(j)
GoTo continue
handler:
MsgBox "Calculation error"
Resume Next
continue:
Next j
Cells(i, UBound(A, 2) + 2) = R(i)
Next i
End Sub
...
Рейтинг: 0 / 0
Нужен человек, готовый ставить задачки по массивам VBA
    #39621386
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
194184710311194184710311,
Можно как-то упростить код (сделать так, чтобы при МОЩНОМ заполнении строк и столбцов) просчёт был бы быстрым?Пробуйте
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub sumStrStolb()
Dim x As Range
  Set x = Range("A1").CurrentRegion
  With x.Columns(1).Offset(, x.Columns.Count + 1)
    .FormulaR1C1 = Replace("=SUM(RC1:RC#)", "#", x.Columns.Count)
    .Value = .Value
  End With
  With x.Rows(1).Offset(x.Rows.Count + 1)
    .FormulaR1C1 = Replace("=SUM(R1C:R#C)", "#", x.Rows.Count)
    .Value = .Value
  End With
End Sub
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Нужен человек, готовый ставить задачки по массивам VBA
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]