Поскольку вы устанавливаете wdOBJ как позднюю привязку, вы должны измерять его как Object, а не как Word.Application. После этого вы сможете удалить ссылку.
Как удалить ссылку и использовать код VBA для каждой машины?
429
Atul Bihari
Как вы и предполагали, я внес изменения, но все же я не могу сделать их удобными для пользователя, или вы можете сказать, что каждый раз, когда мне приходится использовать этот код, я должен включить Scripting Runtime на разных компьютерах.
Пожалуйста, предложите и сделайте мой код исправленным как можно скорее
Sub GetFileNamesandPageCount() Option Explicit Public fs As Object Dim diaFolder As FileDialog Set fs = CreateObject("Scripting.FileSystemObject") Dim i As Integer Dim fld As Object Dim T_Str As String Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker) diaFolder.AllowMultiSelect = False diaFolder.Show If diaFolder.Show = -1 Then T_Str = diaFolder.SelectedItems(1) Else Set diaFolder = Nothing End If Set fld = fs.getfolder(T_Str) Dim wdOBJ As Word.Application Dim wdDoc As Object Dim fd As Object Sheet1.UsedRange.Clear Sheet1.Range("A1") = "Document Name" Sheet1.Range("B1") = "Page Count" Sheet1.Range("A1:B1").Font.Bold = True Sheet1.Columns("A:A").ColumnWidth = 70 Sheet1.Columns("B:B").AutoFit Sheet1.Range("A1:B1").Interior.ColorIndex = 37 fs.GetSpecialFolder (1) Set wdOBJ = CreateObject("Word.Application") wdOBJ.Visible = True i = 1 For Each fd In fld.Files If (InStr(1, fd, ".doc") > 0) Or (InStr(1, fd, ".docx") > 0) Or (InStr(1, fd, ".docm") > 0) Or (InStr(1, fd, ".doct") > 0) Or (InStr(1, fd, ".pdf") > 0) Then Sheet1.Range("A" & i + 1) = fd.Name Set wdDoc = wdOBJ.Documents.Open(CStr(fd)) wdDoc.ComputeStatistics (wdStatisticPages) Sheet1.Range("B" & i + 1) = wdDoc.BuiltinDocumentProperties(14) wdDoc.Close False End If i = i + 1 Next fd wdOBJ.Quit False End Sub
Мы не являемся веб-сайтом для проверки кода и не являемся Stackoverflow, этот вопрос выходит за рамки Superuser
Ramhound 8 лет назад
1
Добро пожаловать в SuperUser. Обычно пользователи здесь хотят видеть, что вы пытались решить вашу проблему, просто чтобы было ясно, что вы не спрашиваете: «Эй, кто-нибудь сделает мою работу за меня?» Если вы добавите небольшую деталь, показывающую, что вы пробовали или какие идеи у вас есть, но не знаете, как их реализовать, у вас больше шансов получить положительные отзывы и ответы.
nixda 8 лет назад
0
1 ответ на вопрос
-1
Julian Kuchlbauer
Похожие вопросы
-
6
Насколько хороша защита паролем Word?
-
4
Вставить Flash видео в документ MS Word (2003 или 2007)
-
1
Как сделать так, чтобы меню по умолчанию открывалось «полностью» в MS Word 2003?
-
-
1
Office 2007 - ссылки на источники в Word
-
6
Есть ли сочетание клавиш для выделения выделенного текста в MS Word 2007?
-
2
Word 2007 не открывает старые файлы
-
3
Минимизируйте размер файла документов Microsoft Word
-
6
Рекомендация для простого (японского) текстового процессора
-
1
Используя OpenOffice.org, есть ли способ напечатать не только контент, но и комментарии к документу?
-
2
Конвертировать макрос Excel 4.0 в VBA