Ошибка в использовании Union...

Программирование на Visual Basic for Applications
noxs
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 05.01.2004 (Пн) 14:23

Ошибка в использовании Union...

Сообщение noxs » 09.02.2004 (Пн) 14:20

Имеется процедура, которая на вход берет матрицу (ничего другого в качестве selection не выделяю), пробегает по всем парам ее различных столбцов, каждую пару столбцов объединяет единую область rng и выдает количество столбцов в rng.

Код: Выделить всё
Sub test()
  Dim R As Excel.Range
  Set R = Selection
  Dim n As Long
  n = R.Rows.Count
  Dim m As Long
  m = R.Columns.Count
 
  Dim k As Long
  Dim j As Long
 
  For j = 1 To (m - 1)
    For k = (j + 1) To m
      Dim rng As Range
      Set rng = Application.Union(R.Columns(j), R.Columns(k))
      MsgBox rng.Columns.Count
    Next k
  Next j
     
End Sub


По логике вещей должно выдаваться все время число 2, поскольку я объединяю всегда 2 столбца, однако например в 2 случаях из 6 (для m=4) выдается 1.

В чем проблема? Или я не правильно использую Union?

заранее спасибо.

noxs
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 05.01.2004 (Пн) 14:23

Сообщение noxs » 09.02.2004 (Пн) 16:06

а проблема в том (утверждает мсдн и я ему верю :D ), что функция union умеет объединять только соприкасающиеся области, поэтому для всех не соседних столбцов она работает неправильно.

Может кто еще какую функцию для объединения знает, я конечно уже обошла эту проблему, но на будущее хотелось бы знать.

спасибо


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 100

    TopList  
cron