我正在製作一個具有用戶表單的數據庫,以幫助自動執行使用相關信息記錄PDF文件的過程。使用關聯信息記錄PDF文件的過程自動化
爲此,我希望讓用戶在圖紙信息中輸入,瀏覽圖紙所在的文件夾,然後在Excel中列出圖紙文件,併爲每個圖紙/ PDF條目重複上述信息。
我該如何編碼?
這是我目前(和它不工作):
Sub Button2_Click()
UserForm1.Show
End Sub
Sub startIt()
Dim FileSystem As Object
Dim HostFolder As String
Dim xDirect$, xFname$, InitialFoldr$
InitialFoldr$ = "G:\ScannedDwgArchive\Transportation and BuildingsDrawings\Rocky Harbour\"
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = Application.DefaultFilePath & "\"
.Title = "Please select a folder to list Files from"
.InitialFileName = InitialFoldr$
.Show
If .SelectedItems.Count <> 0 Then
xDirect$ = .SelectedItems(1) & "\"
End If
End With
Set FileSystem = CreateObject("Scripting.FileSystemObject")
DoFolder FileSystem.GetFolder(InitialFoldr$)
End Sub
Sub DoFolder(Folder)
Dim SubFolder
For Each SubFolder In Folder.SubFolders
DoFolder SubFolder
Next
i = Cells(Rows.Count, 21).End(xlUp).Row + 1
Dim File
For Each File In Folder.Files
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 21), Address:= _
File.Path, TextToDisplay:=File.Name
i = i + 1
Call TextboxWrite
Next
End Sub
**Sheet 5 is the page in my workbook I am working on. This part of the code never works**
Sub TextboxWrite()
Sheet5.Range(i, 12) = jobNumTextBox.value
Sheet5.Range(i, 15) = TownTextBox.value
Sheet5.Range(i, 16) = YearTextBox.value
Sheet5.Range(i, 18) = StreetTextBox.value
Sheet5.Range(i, 19) = PhaseTextBox.value
Sheet5.Range(i, 20) = cdTextBox.value
End Sub
我可以打開文件夾,並有書面到Excel文件。這就是它。我怎樣才能使這個工作?
更新:我得到它的工作後,你的一些指導和一些新的教程。這裏是(未完成,但它的功能)
Sub Button2_Click()
UserForm1.Show
End Sub
Sub startIt()
Dim FileSystem As Object
Dim HostFolder As String
Dim xDirect$, xFname$, InitialFoldr$
InitialFoldr$ = "G:\ScannedDwgArchive\Transportation and Buildings Drawings\Rocky Harbour\"
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = Application.DefaultFilePath & "\"
.Title = "Please select a folder to list Files from"
.InitialFileName = InitialFoldr$
.Show
If .SelectedItems.Count <> 0 Then
xDirect$ = .SelectedItems(1) & "\"
End If
End With
Set FileSystem = CreateObject("Scripting.FileSystemObject")
DoFolder FileSystem.GetFolder(InitialFoldr$)
End Sub
Sub DoFolder(Folder)
Dim SubFolder
For Each SubFolder In Folder.SubFolders
DoFolder SubFolder
Next
Dim i As Integer ' DECLARE i VARIABLE
i = Cells(Rows.Count, 21).End(xlUp).row + 1
Dim File
For Each File In Folder.Files
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 21), Address:= _
File.Path, TextToDisplay:=File.Name
i = i + 1
Call TextboxWrite(i) ' PASS ARGUMENT
Next
End Sub
Sub TextboxWrite(i As Integer) ' RECEIVE ARGUMENT
Worksheets("CIVIL DATABASE").Activate
Dim row As Integer
row = i - 1
ActiveSheet.Cells(row, 12) = UserForm1.jobNumTextBox.value
ActiveSheet.Cells(row, 15) = UserForm1.TownTextBox.value
ActiveSheet.Cells(row, 16) = UserForm1.YearTextBox.value
ActiveSheet.Cells(row, 17) = UserForm1.descTextBox.value
ActiveSheet.Cells(row, 18) = UserForm1.StreetTextBox.value
ActiveSheet.Cells(row, 19) = UserForm1.PhaseTextBox.value
ActiveSheet.Cells(row, 20) = UserForm1.cdTextBox.value
End Sub
非常感謝你幫助我!
當你運行你的代碼時,它會給出錯誤? (如果沒有錯誤,那麼最後一行工作正常?)。我不明白爲什麼有超鏈接的一行,Excel中列出的文件是否應超鏈接到文件夾位置?如果是,是文件對話框中選擇的文件夾位置? –
超鏈接部分來自一個教程,該教程將提取文件名並將它們打印到下一個空閒單元格中的單元格。我沒有使用超鏈接。 –