|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.06.2010, 15:54 | #1 |
Пользователь
Регистрация: 17.05.2010
Сообщений: 22
|
Не получается с циклом
Здравствуйте Всем!!!
Одну задачу не могу никак сделать.Целый день голову ломил но все равно не получается. Есть такой макрос который значение D(2), D(3) записывает на ячеики по циклу. Теперь хочу что бы значение D(1) записался на другой Sheet. Щас данный момент он мен выдает сообщение этих значении а мне нужно их записать. В коментах написал но он только одно значение записывает. Помогите пожалуйста. Sub TEL(D As Variant) Dim r, Adr As String Dim rw, i As Integer Dim NewSheet As Worksheet 'Dim NewStr As Range With Sheets(1) .UsedRange.AutoFilter .UsedRange.AutoFilter Field:=1, Criteria1:=D(1) Adr = Sheets(1).UsedRange.SpecialCells(xl CellTypeVisible).Address r = Split(Adr, "$", -1) rw = r(UBound(r)) If rw = 1 Then GoTo 2 .Cells(rw, 3) = D(2) .Cells(rw, 4) = D(3) .Cells(rw, 5) = D(4) .Cells(rw, 6) = D(5) .Cells(rw, 7) = D(6) .Cells(rw, 8) = D(7) .Cells(rw, 9) = D(8) .Cells(rw, 10) = D(9) .Cells(rw, 11) = D(10) .Cells(rw, 12) = D(11) .Cells(rw, 13) = D(12) .Cells(rw, 14) = D(13) .Cells(rw, 15) = D(14) .Cells(rw, 16) = D(15) .Cells(rw, 17) = D(16) '.Cells(rw, 18) = D(1) .UsedRange.AutoFilter End With Exit Sub 2 Sheets(1).UsedRange.AutoFilter 'MsgBox (D(1) & "not found") 'Application.Sheets(2).Cells(1) = D(1) End Sub |
03.06.2010, 06:37 | #2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Во-первых, Ваш макрос можно немного оптимизировать, например, так:
Код:
P.S. Обратите внимание на правильное описание типов переменных.
Чем шире угол зрения, тем он тупее.
|
03.06.2010, 08:50 | #3 |
Пользователь
Регистрация: 17.05.2010
Сообщений: 22
|
Спасибо большое!!!
SAS888 Спасибо Вам что откликнулись на мою задачу. Но я уже сделал вот таким образом
Application.Sheets(1).UsedRange.Aut oFilter Application.Sheets(2).Range("A" & Application.Sheets(2).Rows.Count).E nd(xlUp).Offset(1) = D(1) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что-то с циклом | VetalMan | Помощь студентам | 1 | 10.05.2010 11:20 |
задача с циклом for | lammy | Помощь студентам | 3 | 04.12.2009 06:45 |
Помогите с циклом | BuT@JL | Помощь студентам | 3 | 25.03.2009 17:53 |
Задача с циклом for в c++ | Many man | Помощь студентам | 5 | 14.12.2008 12:01 |
помогите с циклом | Lonix | PHP | 1 | 19.09.2008 17:51 |