VBA - Zgradite uvozni vmesnik po meri

Kazalo

Bi raje imeli nadzor nad uporabniki, ki uvažajo datoteke, namesto da bi za to uporabili Excelove funkcije? Ali potrebujete več nadzora nad uvozom za potrditev ali spremembo uvoza? Obstaja več načinov za to in prav toliko različic zahtev, vendar je tukaj nekaj gradnikov, s katerimi lahko začnete.

1. V modul vnesite naslednjo kodo in jo zaženite

Javni podpo meri CustomImport ()

'Določite spremenljivke
Zatemni uvozno datoteko kot niz
Zatemni ImportTitle As String
Zatemni TabName As String
Zatemni ControlFile kot niz

'Odprite skupno pogovorno okno in dobite ime datoteke
ImportFile = Application.GetOpenFilename (_
"Datoteke Excel, *.xls, Vse datoteke, *. *")
ImportTitle = _
Srednji (ImportFile, InStrRev (ImportFile, "\") + 1)

'Preklic čeka ni bil kliknjen
Če je ImportFile = "False", potem
Zapri pod
Konec Če

'Uvozi datoteko
TabName = "MyCustomImport"
ControlFile = ActiveWorkbook.Name
Delovni zvezki.Odprite Ime datoteke: = ImportFile
ActiveSheet.Name = TabName
Listi (TabName). Kopiraj _
Pred: = delovni zvezki (ControlFile). Listi (1)
Windows (ImportTitle). Aktivirajte
ActiveWorkbook.Close SaveChanges: = False
Windows (ControlFile) .Aktivirajte

End Sub
Sidenote: To dobro deluje za datoteke *.xls, *.xlsx, *.xlsm, *.csv in *.txt. Pred End Sub lahko dodate ali pokličete kodo, da spremenite uvožene podatke, preden se jih uporabnik lahko dotakne.

wave wave wave wave wave