![]() |
#1
|
|||
|
|||
![]()
Hi community,
I encounter some difficulties in writing a VBA to do the following steps: Copy text from a Word Document to an Excel file according to an Excel List 1. Browse an Excel file for copying text from the active Word document to it. 2. After selected the Excel file, the VBA will find text according to the Excel List and then copy those text to the Excel file. 3. Open the Excel file copied with specific text. The system keep saying "xlsWB1 = "D:\databases\ENG.xlsx"" Object variable not set (Error 91). What should I do to resolve this issue? Your help will be greatly appreciated. Code:
Option Explicit Private xlWB1 As String Private xlWB2 As String Private xlSheet As String Sub CopyText_from_Word_to_Excel() Dim EXL As Object Dim xlsWB1 As Object Dim xlsWB2 As Object Dim xlsPath As String Dim oDoc As Document Dim oRng As Range xlsWB1 = "D:\databases\ENG.xlsx" xlWB2 = BrowseForFile("Select Workbook", True) If Not xlWB2 = vbNullString Then xlSheet = "sheet1" Set EXL = CreateObject("Excel.Application") Set oDoc = ActiveDocument Set oRng = oDoc.Range With oRng.Find .ClearFormatting .Replacement.ClearFormatting .Font.Name = "Times New Roman" .Font.Bold = True Do While .Execute() If oRng.Text = xlsWB1 Then WriteToWorksheet xlWB1, xlSheet, oRng.Text End If Loop End With lbl_Exit: Exit Sub End If Set xlsWB2 = EXL.Workbooks.Open(xlWB2) EXL.Visible = True End Sub Private Function WriteToWorksheet(strWorkbook As String, _ strRange As String, _ strValues As String) Dim ConnectionString As String Dim strSQL As String Dim CN As Object ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & strWorkbook & ";" & _ "Extended Properties=""Excel 12.0 Xml;HDR=YES;"";" strSQL = "INSERT INTO [" & strRange & "$] VALUES('" & strValues & "')" Set CN = CreateObject("ADODB.Connection") Call CN.Open(ConnectionString) Call CN.Execute(strSQL, , 1 Or 128) CN.Close Set CN = Nothing lbl_Exit: Exit Function End Function Private Function BrowseForFile(Optional strTitle As String, Optional bExcel As Boolean) As String Dim fDialog As FileDialog On Error GoTo err_Handler Set fDialog = Application.FileDialog(msoFileDialogFilePicker) With fDialog .Title = strTitle .AllowMultiSelect = False .Filters.Clear If bExcel Then .Filters.Add "Excel workbooks", "*.xls,*.xlsx,*.xlsm" Else .Filters.Add "Word documents", "*.doc,*.docx,*.docm" End If .InitialView = msoFileDialogViewList If .Show <> -1 Then GoTo err_Handler: BrowseForFile = fDialog.SelectedItems.item(1) End With lbl_Exit: Exit Function err_Handler: BrowseForFile = vbNullString Resume lbl_Exit End Function |
Tags |
copy text, vba word to excel |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Issues with a copy of a Contents Table! | KirstyAmanda | Word | 2 | 07-20-2020 02:51 PM |
![]() |
ArchanaV | Word | 3 | 06-29-2016 01:02 PM |
Issues with text in circle shapes that I am having | damefrombrum | Word | 0 | 12-01-2015 08:05 PM |
Page Up & Copy/Paste Issues | weamish | Word | 10 | 02-01-2014 08:25 PM |
![]() |
Oncilla | Outlook | 6 | 12-13-2010 01:00 PM |