13. februar 2002 - 12:14Der er
8 kommentarer og 1 løsning
GetSetting i VBA
Mit problem er som følge af diskussionen D 12/2 om skrivning til Reg. databasen. Først mit program. Jeg har en liste A og en liste B. ListeA indlæses til combobox1, hvor de valg der nu er i combobox1, bruges til åbning af en ny workbook indeholdende ListeB
Private Sub UserForm_Initialize() Dim ItemList(100) As String Dim ItemID As Integer
On Error GoTo Fejl StartUp: FName = GetSetting("ListView", "liste", "Stinavn", "") Select Case FName Case Is = False, "" FName = Application.GetOpenFilename _ (filefilter:="Text Files(*.txt),*.txt,All Files (*.*),*.*") SaveSetting "ListView", "liste", "Stinavn", FName
End Select
ItemX = 0 Open FName For Input As #1 Do While EOF(1) = False ItemX = ItemX + 1 Line Input #1, ItemList(ItemX) Loop Close #1
ComboBox1.Clear For ItemID = 1 To ItemX ComboBox1.AddItem ItemList(ItemID) Next Exit Sub Fejl: DeleteSetting "ListView", "liste" GoTo StartUp End Sub
Private Sub ComboBox1_Change() FName = GetSetting("ListView25", "diffliste", "Stinavn", "") Workbooks.OpenText FileName:=FName & ComboBox1.Text End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) ActiveWorkbook.Close End Sub
Som man kan læse bliver den nye sti til liste B for lang med \ListeA, da Fname jo er stien til ListeA. ListeA og ListeB er begge txt filer og ligger i samme mappe.
? hvordan løses dette problem? Det skulle jo helst fungere sådanne så man kun skal søge efter ListeA hvis mappen med ListeA og ListeB evt. flyttes!
Hej Bambus Split funktionen er en fin lille fætter til dette formål - yderligere info kig i VBA hjælpen.
Dim vntSplit As Variant 'Opsplitter stien FName i et Array vntSplit = Split(FName, "\") 'Sætter FName = FName - det sidste Array (ListeA) og tilføjer ListeB's sti FName = Left(FName, Len(FName) - Len(vntSplit(UBound(vntSplit)))) & ListeB
OK lidt mere hjælp. Sub SplitString() Dim vntSplit As Variant Dim iCount As Integer vntSplit = Split("C:\Folder1\Folder2\Folder3\File1.xls", "\") For iCount = 0 To UBound(vntSplit) Debug.Print vntSplit(iCount) Next iCount End Sub
sorry :)) Excel97, og split er ikke tilgængelig... øv øv jeg kender godt funktionen og har før haft brug for den, når der skal indlæses data fra en txt. file. :( men er der ikke en funktion i vba der fungere som like (men ikke kun giver true / false) ?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.