Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 | 2 |

 

  Вопрос: Перестановки Добавлено: 09.04.07 14:05  

Автор вопроса:  Meteor

Ответить

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

Номер ответа: 16
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #16
Добавлено: 12.04.07 19:31
____ Я Вам пример написал для массива из 6 элементов сочетания по четыре. Пример "сидит" в событии двойного клика по любой ячеке в книге просто для удобства рассмотрения результата. На первый взгляд — всё работает. —
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
  Dim A(1 To 6) As String
  Dim ind(1 To 4) As Long
  Dim i As Long, m As Long, n As Long, cur As Long, str As String
  
  A(1) = "A": A(2) = "B": A(3) = "C": A(4) = ";D": A(5) = "E": A(6) = "F"
  m = UBound(A)
  n = UBound(ind)
  cur = 1
  ind(cur) = 1
  
  Do
    If ind(cur) > m - n + cur Then
      cur = cur - 1
      If cur < 1 Then Exit Do
    Else
      Do Until cur + 1 > n
        cur = cur + 1
        ind(cur) = ind(cur - 1) + 1
      Loop
      str = ""
      For i = LBound(ind) To UBound(ind)
        str = str & A(ind(i))
      Next
      MsgBox str
    End If
    ind(cur) = ind(cur) + 1
  Loop
End Sub

____ Пример представляет именно "n" вложенных циклов, перебирающих варианты. Любопытная задачка. Спасибо.
____ Думаю, Вам не составит труда сделать общую Sub с соответсвующими параметрами.

Ответить

Номер ответа: 17
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #17
Добавлено: 13.04.07 17:36
____ Через блокнот их, через блокнот.

____ А чем мой вариант не устраивает

Ответить

Страница: 1 | 2 |

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



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