我正在尝试从此页copy formatted text into access using vba调整VBA,以便循环显示所选的所有文件或特定文件夹中的所有文件。这可能吗?感谢。
答案 0 :(得分:1)
您可以执行以下两项操作之一:不要拆分filepicker函数和导入函数,也不要从filepicker函数返回集合或数组。
我会选择后者来获得教育价值:
选择文件
Public Function FilesToOpen() As Collection
' This function will essentially allow you to browse to MS-Word document
' and then store the path of that file for use in the GetWordContent function
Dim fDialog As Object 'Office.FileDialog
Dim varFile As Variant
Set fDialog = Application.FileDialog(3)
Set FilesToOpen = New Collection
With fDialog
.AllowMultiSelect = True
.Title = "Select Word document to import"
.Filters.Clear
.Filters.Add "Word files", "*.doc?"
If _
.Show = True _
Then
For Each varFile In .SelectedItems
FilesToOpen.Add varFile
Next
End If
End With
End Function
并打开它们
Private Sub cmdGetWordData_Click()
' This subroutine runs on your command button; it will call both the FileToOpen function and GetWordContent subroutine
' to retrieve the text contents of your chosen MS-Word Document.
' It will then store both the path the text contents of of your chosen MS-Word Document in 2 fields in a table in Access.
' NOTE: this code assumes that your Access database has:
' - a table called tblWordDump
' - a memo text field in this table called WordDocDataSrc to store the path of MS-Word file imported
' - a memo text field in this table called WordDocData with the TextFormat property set to "Rich Text",
' which will store the text and text formating of the MS-Word file imported
Dim collFiles As Collection
Dim strWordContent As Variant
' Select files via File Dialogue
Set collFiles = FilesToOpen
Dim oneFile As Variant
' Conditionals when a file was or wasn't selected
If _
collFiles.Count <> 0 _
Then
For Each oneFile In collFiles
DoCmd.GoToRecord , , acNewRec
GetWordContent CStr(oneFile)
Next oneFile
MsgBox "Import Successful", vbInformation Or vbOKOnly
Else
MsgBox "No File Selected", vbExclamation Or vbOKOnly
End If
End Sub
请注意,我尝试尽可能少地更改,但没有使用GetWordContent
功能做任何事情。