Как удалить ссылку и использовать код 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 
-2
Мы не являемся веб-сайтом для проверки кода и не являемся Stackoverflow, этот вопрос выходит за рамки Superuser Ramhound 8 лет назад 1
Добро пожаловать в SuperUser. Обычно пользователи здесь хотят видеть, что вы пытались решить вашу проблему, просто чтобы было ясно, что вы не спрашиваете: «Эй, кто-нибудь сделает мою работу за меня?» Если вы добавите небольшую деталь, показывающую, что вы пробовали или какие идеи у вас есть, но не знаете, как их реализовать, у вас больше шансов получить положительные отзывы и ответы. nixda 8 лет назад 0

1 ответ на вопрос

-1
Julian Kuchlbauer

Поскольку вы устанавливаете wdOBJ как позднюю привязку, вы должны измерять его как Object, а не как Word.Application. После этого вы сможете удалить ссылку.