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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.11.2008, 19:12   #1
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию помогите найти ошибку

вот kод
Код:
Private Sub CommandButton1_Click()
Dim dirvar As String
browse.Text = GetFolderPath("Виберіть папку", "d:\")
Do While Dir(browse.Text) <> ""
  List.AddItem Dir(browse.Text)
  Loop
End Sub

Function GetFolderPath(Optional ByVal Title As String = "Виберіть папку", Optional ByVal InitialPath As String = "c:\") As String
    GetFolderPath = "": PS = Application.PathSeparator
    With Application.FileDialog(msoFileDialogFolderPicker)
        .ButtonName = "Выбрати": .Title = Title: .InitialFileName = InitialPath
        If .Show = -1 Then GetFolderPath = .SelectedItems(1): If Not Right$(GetFolderPath, 1) = PS Then GetFolderPath = GetFolderPath & PS
    End With
End Function
P.S. спасибо EducatedFool за функцию
rUs_LAN вне форума
Старый 18.11.2008, 19:32   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Private Sub CommandButton1_Click()
    Dim dirvar As String
    browse.Text = GetFolderPath("Виберіть папку", "d:\")
    If browse.Text = "" Then Exit Sub ' если пользователь отказался от выбора папки
    res = Dir(browse.Text)
     While res <> ""
        List.AddItem res
        res = Dir
    Wend
End Sub
Первый раз функция Dir вызывается с параметром (путём к папке), а потом - без параметра (до тех пор, пока она не вернёт пустое значение)

Последний раз редактировалось EducatedFool; 18.11.2008 в 19:40.
EducatedFool вне форума
Старый 18.11.2008, 19:48   #3
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

спасибо!!!
но почему работает без обявления переменной res?

Последний раз редактировалось rUs_LAN; 18.11.2008 в 19:59.
rUs_LAN вне форума
Старый 18.11.2008, 21:01   #4
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

и подскажите пожалуйста как сделать маску я делал так но ничево не поличилось
Код:
If InStr(Len(browse.Text) - 4, browse.Text, "xlsm", vbTextCompare) Then List.AddItem res
rUs_LAN вне форума
Старый 18.11.2008, 21:23   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Option Compare Text

Private Sub CommandButton1_Click()
    MyDir = GetFolderPath("Виберіть папку", "d:\")
    If MyDir = "" Then Exit Sub ' если пользователь отказался от выбора папки
    res = Dir(MyDir): browse.Text = MyDir
     While res <> ""
        If res Like "*.xls*" Then List.AddItem res
        'или, например, так
        'If Right(res, 5) = ".xlsm" Then List.AddItem res
        res = Dir
    Wend
End Sub
Цитата:
но почему работает без обявления переменной res?
Объявлять переменные желательно, но не обязательно.
VBA автоматически преобразует тип переменной (в данном случае из присвоенного по умолчанию типа Variant в тип String)
Про это написаны сотни статей, лучше обратитесь к ним за консультацией по этому вопросу...
EducatedFool вне форума
Старый 19.11.2008, 20:15   #6
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

спасибо!!! ви мне очень помогли
rUs_LAN вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите найти ошибку MyQwErTy Помощь студентам 1 05.11.2008 21:24
помогите найти ошибку Максим_Леонидович БД в Delphi 4 20.08.2008 23:23
Помогите найти ошибку! Студентка@ Помощь студентам 3 21.05.2008 14:21
Помогите найти ошибку JOFRIF Помощь студентам 8 22.04.2008 14:22
Помогите найти ошибку NeiL Общие вопросы Delphi 7 04.03.2008 07:14