VBS otwieranie/pobieranie pliku

Odpowiedz Nowy wątek
2018-09-14 12:26
0

Witam,

poniżej kawałek kodu, który otwiera okienko do wyboru plik ale jeśli plik nie zostanie wybrany ma wyświetlić komunikat aby wybrać plik.
ma dziać się to w kółko dopóki plik nie zostanie wybrany.
niestety wywala mi błąd w pętli przy file = ... , że "Zmienna obiektowa nie jest ustawiona"

Dim file : Set file = shell.BrowseForFolder(0, "Wybierz plik:", &H4000, "Ścieżka do pliku" )

 if file is nothing then
  Do 
  MsgBox("Nie wybrano szablonu. Wybierz szablon ponownie")
  file = shell.BrowseForFolder(0, "Wybierz plik:", &H4000, "Ścieżka do pliku" )
  Loop While file is nothing
  end if
edytowany 3x, ostatnio: buchu2, 2018-09-14 12:27

Pozostało 580 znaków

2018-09-14 13:16
0

Wywal Set

I skoro file nie będzie obiektem (bo nie będzie), to porównujesz przez =vbNullString, a nie Is Nothing - Marcin.Miga 2018-09-14 13:18
Jak nie będzie obiektem jak BrowseForFolder zwraca obiekt? https://docs.microsoft.com/en-us/windows/desktop/shell/shell-browseforfolder - Panczo 2018-09-14 17:30
Faktycznie, dawno nie używałem. Zasugerowałem sie tym file w Do. - Marcin.Miga 2018-09-14 18:28

Pozostało 580 znaków

2018-09-14 17:29
0

wywołujesz metodę na obiekcie shell którego nie masz:

set shell = CreateObject("shell.application")
Do 
    Set file = shell.BrowseForFolder(0, "Wybierz plik:", &H4000, "Ścieżka do pliku" )
loop while file is nothing  
msgbox file.self.path
set file = nothing
set objShell = nothing

Pozostało 580 znaków

dziś, 10:41
0

Witam,

Panczo działa ale z jednak z małym 'ale'.
Mianowicie kiedy zaznaczę plik do wyboru i kliknę OK to wywali komunikat z msgbox a następnie błąd - Wymagany jest obiekt: 'file'

Chyba pośpieszyłem się z tym komentarzem o błędzie. Dam znać później czy to to czy co innego.

Panczo dzięki za naprowadzenie.

Troszkę zmodyfikowałem to co podesłałeś i działa tak jak chciałem.

 Set shell = CreateObject("Shell.Application")
  Do
  Set file = shell.BrowseForFolder(0, "Wybierz plik:", &H4000, "\\192.168.1.8\Simple\RODO_wysylka\Szablony\" ) 
  if file is nothing then
  MsgBox("Nie wybrano szablonu. Wybierz szablon ponownie")
  end if
  Loop While file is nothing
  set objShell = nothing 
edytowany 6x, ostatnio: buchu2, dziś, 11:26

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0