Jag skulle vilja ha hjälp med ett par jobbiga saker. För att ladda listboxen: Tack det ser ju bra ut, men fungerar det med VBA? Nu är jag en bit på väg. Kanske något sånt här? När jag använder det här:Hämta upp flera word-dockument .
Jag skulle vilja via en kombibox se vilka word-document som finns i en viss mapp. i den kombiboxen så ville jag att man skulle kunna ha endera en kryssbox för varje dokument, eller ha så att man kan välja många dokument, för att sedan kunna skriva ut detta.
Jag har börjat så här:
[kod]
Dim objFSO
Dim ofolder
Dim objStream
Set objFSO = CreateObject("scripting.filesystemobject")
Set objStream = objFSO.createtextfile("h:\search.log", True)
CheckFolder (objFSO.getfolder("h:\privat\")), objStream
Sub CheckFolder(objCurrentFolder, objLogFile)
Dim strTemp
Dim strSearch
Dim strOutput
Dim objNewFolder
Dim objFile
Dim objStream
strSearch = ".doc"
For Each objFile In objCurrentFolder.Files
strTemp = Right(objFile.Name, 4)
If UCase(strTemp) = UCase(strSearch) Then
'Got one
strOutput = CStr(objFile.Name)
strWord.Value = strOutput
objLogFile.writeline strOutput
End If
Next
For Each objNewFolder In objCurrentFolder.subFolders
CheckFolder objNewFolder, objLogFile
Next
End Sub
[/kod]
Problemet nu är att jag bara får in ett dokument i listan, men det finns flera.
Hur gör jag det?Sv: Hämta upp flera word-dockument .
<code>
Public Sub SearchFolder(Listbox As Listbox, Folder As String, Optional Filter As String = "*.*")
Dim FileName As String
Listbox.Clear
If Folder Like "*\" Then
FileName = Dir$(Folder & Filter)
Else
FileName = Dir$(Folder & "\" & Filter)
End If
Do While Len(FileName)
Listbox.AddItem FileName
FileName = Dir$
Loop
End Sub
</code>
För att ta reda på markerade filer:
<code>
Private Sub Command1_Click()
Dim Index As Long
Dim strResult As String
For Index = 0 To List1.ListCount - 1
If List1.Selected(Index) Then
strResult = strResult & vbCrLf & List1.List(Index)
End If
Next
MsgBox "Markerade Filer:" & strResult
End Sub
</code>Sv: Hämta upp flera word-dockument .
Jag försöker med din kod, men jag får ingenting i listboxen.
Dim FileName As String
Listbox.Clear
If Folder Like "h:\privat\" Then
FileName = Dir$(Folder & Filter)
Else
FileName = Dir$(Folder & "h:\privat\" & Filter)
End If
Do While Len(FileName)
Listbox.AddItem FileName
FileName = Dir$
Loop
Som du ser så försöker jag styra var han skall leta, men det har ingen som helst betydelse om jag har kvar orginalet, ingenting händer...
Jag skall väll tilläga, att jag enbart försöker med din kod, min gammla kod har jag tagit bort.Sv: Hämta upp flera word-dockument .
Jag har lyckats med att fylla upp listboxen, men sedan när jag skall klicka på listboxen, för att välja fil, då blir det stop.
Dim ObjWord As Word.Application
Set ObjWord = New Word.Application
ObjWord.Documents.Open (App.Path & "\" & Listbox.Selected)
Jag får felmedelandet: Kopileringsfel, Agrumentet är inte valfrit.
Om jag försöker med:
ObjWord.Documents.Open (App.Path & "\" & Listbox.Selected(Listbox.ListIndex))
Så får jag felet:
Objects krävs.
Hur göra?Sv: Hämta upp flera word-dockument .
<code>
Dim Index As Long
Dim strPath as string
Dim strFileName as string
Dim ObjWord As Word.Application
Dim ObjDoc As Word.Document
strPath = App.Path
Set ObjWord = New Word.Application
For Index = 0 To List1.ListCount - 1
If List1.Selected(Index) Then
strFileName = strPath & "\" & List1.List(Index)
ObjDoc = ObjWord.Documents.Open(strFileName)
ObjDoc.Print
End If
Next
</code>Sv: Hämta upp flera word-dockument .
Dim Index As Long
Dim strPath As String
Dim StrFileName As String
'Dim objWord As Word.Application
Dim objWord As Word.Document
Dim ObjDoc As Word.Document
'strPath = App.Path & "\"
strPath = "h:\privat\"
Set objWord = New Word.Application
For Index = 0 To Listruta.ListCount - 1
If Listruta.Selected(Index) Then
StrFileName = strPath & List1.List(Index)
ObjDoc = objWord.Documents.Open(StrFileName)
ObjDoc.Print
End If
Next
Så får jag ogiltlig användning av egenskap.