Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2012, 18:06   #11
Alekc87
 
Регистрация: 27.10.2012
Сообщений: 9
По умолчанию

kuklp, огромное спасибо! Я разобралась!!!!
Alekc87 вне форума Ответить с цитированием
Старый 28.10.2012, 18:18   #12
Alekc87
 
Регистрация: 27.10.2012
Сообщений: 9
По умолчанию

Еще возник вопрос. Как проверить на пустоту ячейку, написала такой код

If f = "" Then
Cells(i + 3, 6).Value = t
End If

выдает ошибку...
Alekc87 вне форума Ответить с цитированием
Старый 28.10.2012, 18:21   #13
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

А что такое у Вас f? Может Вы буквы попутали?
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 28.10.2012, 18:21   #14
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Но ведь f<>t
Я обычно поверяю на Len(trim(t))
Ещё что - если Вам нужно брать из того файла данные сплошного диапазона - то быстрее взять их все сразу одним действием в массив, затем его выгрузить - это если через переменную.
Примерно так:
Код:
Sub Кнопка1_Щелчок()
    Dim t()
    With GetObject("D:\запрос1.xls")
        With .Sheets("Лист1")
            t = Range(.Cells(2, 1), .Cells(10, 1)).Value 'взяли в массив
        End With
        .Close 0
    End With
    Cells(4, 1).Resize(8, 1).Value = t 'выгрузили
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 28.10.2012 в 18:26.
Hugo121 вне форума Ответить с цитированием
Старый 28.10.2012, 18:30   #15
Alekc87
 
Регистрация: 27.10.2012
Сообщений: 9
По умолчанию

f - это значение другой ячейки.

Hugo121, дело в том, что мне нужны только данные удовлетворяющие определенным условиям. Так что мне нужно проверять чтобы t было равно к-л строке (пусть слово), а f была пустая...

Такой вопрос, я могу обратиться к элементу массива t из цикла?
Alekc87 вне форума Ответить с цитированием
Старый 28.10.2012, 18:42   #16
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Да, можно за одно действие взять данные в массив, закрыть уже не нужный файл, затем перебрать в цикле массив
Код:
for i=1 to ubound(t)
if len(trim(t(i,1))) then ...
next
(trim как подстраховка от дурака)
и отобрать нужное.
Массив t будет двумерным!
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 28.10.2012, 18:56   #17
Alekc87
 
Регистрация: 27.10.2012
Сообщений: 9
По умолчанию

У меня что-то ругается...

Sub Êíîïêà3_Ùåë÷îê()
Dim t()
With GetObject("D:\запрос1.xls")
With .Sheets("Лист1")
t = Range(.Cells(2, 1), .Cells(20, 1)).Value
End With
.Close 0
End With
For i = 1 To UBound(t)
If Len(Trim(t(i, 1))) Then
Cells(i, 1).Value = t(i, 1)
End If
Next i
End Sub

Последний раз редактировалось Alekc87; 28.10.2012 в 18:58.
Alekc87 вне форума Ответить с цитированием
Старый 28.10.2012, 19:03   #18
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Вместо:
Код:
    With GetObject("D:\запрос1.xls")
        With .Sheets("Лист1")
            t = Range(.Cells(2, 1), .Cells(10, 1)).Value 'взяли в массив
        End With
        .Close 0
    End With
проще:
Код:
    With GetObject("D:\запрос1.xls").Sheets("Лист1")
            t = Range(.Cells(2, 1), .Cells(10, 1)).Value 'взяли в массив
        .parent.Close 0
    End With
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 28.10.2012, 20:32   #19
Alekc87
 
Регистрация: 27.10.2012
Сообщений: 9
По умолчанию

Спасибо! Все работает!!!

Последний раз редактировалось Alekc87; 28.10.2012 в 22:25.
Alekc87 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как импортировать данные из текстового файла? Androgen13 Microsoft Office Excel 0 08.08.2011 15:44
перенести данные из xls(exel) в mysql Furyon PHP 1 29.07.2011 19:41
как сравнить данные в двух файлах .xls SlavenGVO Microsoft Office Excel 6 07.03.2011 16:48
как импортировать код из файла Lepricon69 Общие вопросы Delphi 19 11.06.2010 01:44