|
|
|
по массивам - как лучше сделать?
|
|||
|---|---|---|---|
|
#18+
народ, вот такой вопрос, есть две рабочие книги в одной на каждом листе (кроме первого) в ячейке (B1) есть название объекта. на самом листе располагаются какие либо данные в таблицах. суть в том что к одному объекту может быть несколько листов. во второй рабочей книге на каждом листе располагается количество таблиц, равное количеству объектов. нужно сделать так чтобы количество таблиц было равно количеству объектов. мысли были это сделать при помощи массива, может есть более рациональный путь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 09:00 |
|
||
|
по массивам - как лучше сделать?
|
|||
|---|---|---|---|
|
#18+
Nomad87народ, вот такой вопрос, есть две рабочие книги в одной на каждом листе (кроме первого) в ячейке (B1) есть название объекта. на самом листе располагаются какие либо данные в таблицах. суть в том что к одному объекту может быть несколько листов т.е. на нескольких листах в ячейках B1 может быть одно и то же название объекта? Nomad87 ..нужно сделать так чтобы количество таблиц было равно количеству объектов.. Непонятно, что нужно сделать? Судя из условия, это уже выполнено Nomad87 во второй рабочей книге на каждом листе располагается количество таблиц, равное количеству объектов .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2008, 15:13 |
|
||
|
по массивам - как лучше сделать?
|
|||
|---|---|---|---|
|
#18+
нет, не совсем так, мы заранее не знаем сколько будет объектов в исходной книге, на каждом листе (кроме одного "Шаблон") лежат договоры, и к одному объекту может быть несколько договоров т.е. количество листов <>количеству объектов а нам нужно узнать их названия и количество я вот пока надумал - идти в цикле по исходной книге, по каждой странице(-1), и записывать значение каждой ячейки В1 в массив ObjectName() as Variant при условии что такого значения в массиве нет. но не получается, в чем косяк? может есть другие предложения? автор Dim Count As Integer Dim i, j As Integer Dim ObjectName() As Variant Dim p As Variant 'Count = ActiveWorkbook.Worksheets.Count - 1 For i = 1 To ActiveWorkbook.Worksheets.Count If Sheets(i).Name <> "Øàáëîí" Then Sheets(i).Activate Range("B1").Select p = Str(Selection.Copy) 'вот косяк тут ... но вот как его исправить? подскажите.. If ObjectName(i) <> p Then ObjectName(i) = p End If End If Next i ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 07:12 |
|
||
|
по массивам - как лучше сделать?
|
|||
|---|---|---|---|
|
#18+
получилось вот так ... но он все равно выводит одинаковые элементы массива ... хотя вроде бы условие есть поглядите плиз Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. я понимаю что нужно ещё каждый раз цикл по всему масиву - как это сделать? 0:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 08:20 |
|
||
|
по массивам - как лучше сделать?
|
|||
|---|---|---|---|
|
#18+
спасибо всем кто хоть подумал после 6 часов совокупления с мозгом ответ найден Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 12:14 |
|
||
|
|

start [/forum/topic.php?fid=60&tid=2162032]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 303ms |

| 0 / 0 |
