Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Автоматическое определения границ массива Добавлено: 01.04.10 21:19  

Автор вопроса:  Григорий
Имеется Статический массив
Dim As integer ( 1,2,3,4,5)
В колонку "A" вносятся данные массива
Надо чтобы были выделены только цифры
массива , начиная с верхней части колонки
только которые заполнены данными .
в соседней колонке на одну ячейку выше вывести
значение нижней границы те №3
я пробовал так :
Private Sub Worksheet_SelectionsChange(ByVal Target As Range)
МуАr = Cells(Rows.Count,1).End(xDown).Row
Range ("A" &"MyArr"+!).Value = )

5
2
4
4
5
4
3
4
1
3
1

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #1
Добавлено: 01.04.10 21:30
  1. Dim As integer ( 1,2,3,4,5)

Эм... У тебя пятимерный массив?

Ответить

Номер ответа: 2
Автор ответа:
 Григорий



Вопросов: 21
Ответов: 35
 Профиль | | #2 Добавлено: 01.04.10 22:20
Да, 5 констант. но будет нужно вносить изменения в число данных массива

Ответить

Номер ответа: 3
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #3
Добавлено: 02.04.10 07:44
Эм... У тебя пятимерный массив?


согласно теории суперструн общее число пространственных измерений равно 10, видимо тут стоит задача попробовать описать половину вселенной))

Ответить

Номер ответа: 4
Автор ответа:
 GDK



Вопросов: 13
Ответов: 348
 Профиль | | #4 Добавлено: 02.04.10 11:05
А что функция Ubound не рулит?

Ответить

Номер ответа: 5
Автор ответа:
 UnDeAdZak



Вопросов: 80
Ответов: 476
 Профиль | | #5 Добавлено: 02.04.10 15:18
Skywalker а прикинь создать массив с более чем 10-и измерениями, тогда получится, что внутри компа существует структура, сложнее чем вселенная;)

Ответить

Номер ответа: 6
Автор ответа:
 fAndOrIn



Вопросов: 5
Ответов: 344
 Профиль | | #6 Добавлено: 03.04.10 12:12
Пытаюсь представить себе пятиразмерный массив - с трудом, если честно.
Но есть смутное предположение, что автору нужен всего лишь двумерный массив с пятью колонками...

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 03.04.10 14:34
Была на какой-то олимпиаде одна задача с 10-мерным массивом, динамическое программирование по паре состояний, где каждое состояние содержало прямоугольник и еще один параметр.

Ответить

Номер ответа: 8
Автор ответа:
 Григорий



Вопросов: 21
Ответов: 35
 Профиль | | #8 Добавлено: 04.04.10 03:08
Я пробовал уникальные значения - может так попробовать?
.попробую поподробней - имеется список товаров
у каждого свой номер = например ( 1,2,3,4,5)
когда весь ассортимент закончился - ( 1,2,3,4,5)
прошел цикл. Эта функция должна показать визуально
прохождение цикла

Ответить

Номер ответа: 9
Автор ответа:
 GDK



Вопросов: 13
Ответов: 348
 Профиль | | #9 Добавлено: 05.04.10 10:41
Опасный человек. Скоро народ начнёт дохнуть со смеху. Ладно, теперь по существу:
Пятимерный массив нафиг не нужен. Достаточно двумерного. А лучше "коллекция". И ещё лучше "словарь". Но это если не критично по быстроте (скорее всего так оно и есть).
имеется список товаров
у каждого свой номер = например ( 1,2,3,4,5)
Понятно.
когда весь ассортимент закончился - ( 1,2,3,4,5)
прошел цикл. Эта функция должна показать визуально
прохождение цикла

В этом может нормально разобраться только телепат.

Ответить

Номер ответа: 10
Автор ответа:
 GDK



Вопросов: 13
Ответов: 348
 Профиль | | #10 Добавлено: 05.04.10 10:44
Ну если не можешь нормально объяснить - выложи пример-файл, в котором ручками сделай как должно быть и пояснения.

Ответить

Номер ответа: 11
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #11 Добавлено: 08.04.10 20:02
когда весь ассортимент закончился - ( 1,2,3,4,5)
прошел цикл. Эта функция должна показать визуально прохождение цикла

Попробую себя в новой роли :-) Думаю Григорий имел ввиду, что имеется некий набор товара. У каждого свой номер. Случайным образом выбирается ассортимент. Например, выбрано 1,3. (Запоминается в массив выбранных. :-), что такое выбирали. Выводится на экран.) Это не весь список товаров, т. к. нет 4, 2 и 5.
Выбирается следующий набор ассортимента. Например, выбрано 1,3,4,5. Нет 2. (Запоминается в массив выбранных. Выводится на экран.)
И т.д.
Когда весь запоминающий массив будет заполнен, то конец цикла.
Правильно ? :-)

Ответить

Номер ответа: 12
Автор ответа:
 Григорий



Вопросов: 21
Ответов: 35
 Профиль | | #12 Добавлено: 14.04.10 00:23
Да, кстати я хотел разработать систему для слежения за товарными остатками.
Есть формула - когда товар закончился и надо пополнить запасы от поставщика.
но это дополнительно

Ответить

Номер ответа: 13
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #13 Добавлено: 15.04.10 08:45
  1. Sub FillArray()
  2.   'ассортимент товара (тарелки, ложки, поварешки, машины, трамваи) Всего 5 наименований
  3.   Const SizeArr As Byte = 4  'нумерация c 0
  4.   
  5.   Dim MyValueTemp As Byte
  6.   
  7.   'очистка итогового массива
  8.   ReDim MyArr(SizeArr) As Byte
  9.   
  10.   Do
  11.     'очистка массива с текущим выбором
  12.     ReDim MyArrCur(SizeArr) As Byte
  13.     
  14.     'случайный выбор товара и его вывод
  15.     Randomize
  16.     For i = 0 To SizeArr
  17.       MyArrCur(i) = Int(((SizeArr + 2) * Rnd) + 0)
  18.       Debug.Print "Текущий выбор " & MyArrCur(i)
  19.     Next i
  20.     Debug.Print " "
  21.   
  22.     'запоминание в итоговом массиве
  23.     pr0 = False
  24.     For i = LBound(MyArrCur) To UBound(MyArrCur)
  25.       pr = False
  26.       MyValueTemp = MyArrCur(i)
  27.       If MyValueTemp <> 0 Then
  28.         'определение наличия значения в итоговом массиве
  29.         For j = LBound(MyArr) To UBound(MyArr)
  30.           If MyArr(j) = MyValueTemp Then
  31.             MyArr(j) = MyValueTemp
  32.             pr = False
  33.             Exit For
  34.           Else
  35.             pr = True
  36.           End If
  37.         Next j
  38.         'если значения в итоговом массиве НЕТ, записываем
  39.         If pr Then
  40.           For j = LBound(MyArr) To UBound(MyArr)
  41.             If MyArr(j) = 0 Then
  42.               MyArr(j) = MyValueTemp
  43.               If j = UBound(MyArr) Then
  44.                 pr0 = True
  45.               End If
  46.               Exit For
  47.             End If
  48.           Next j
  49.         End If
  50.       End If
  51.     Next i
  52.     
  53.     'вывод состояния итогового массива
  54.     For j = LBound(MyArr) To UBound(MyArr)
  55.       Debug.Print "Итоговый выбор " & MyArr(j)
  56.     Next j
  57.     Debug.Print " "
  58.   
  59.     If pr0 Then
  60.       Debug.Print "Весь товар выбран. Пора делать глобальную закупку."
  61.       Exit Do
  62.     End If
  63.   Loop
  64. End Sub

Ответить

Номер ответа: 14
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #14 Добавлено: 15.04.10 08:46
Сейчас выбор просто целых чисел от 0 до 5.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам