¿Cómo eliminar la referencia y usar el código vba para cada máquina?

-2

Como sugirió, he hecho cambios pero todavía no puedo hacerlo fácil de usar o puede decir que cada vez que tenga que usar este código tengo que activar Scripting Runtime en diferentes computadoras.

Por favor sugiera y corrija mi código lo antes posible.

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
Atul Bihari
fuente
1
No somos un sitio web de revisión de código, y tampoco Stackoverflow, esta pregunta está fuera del alcance del Superusuario
Ramhound
Bienvenido a SuperUser. Por lo general, los usuarios de aquí quieren ver lo que has tratado de resolver tu problema, solo para que quede claro que no estás preguntando "Oye, ¿alguien hará mi trabajo por mí? Si agrega un poco de detalle que muestre lo que ha intentado o las ideas que tiene pero no sabe cómo implementar, es más probable que obtenga votos y respuestas.
nixda

Respuestas:

-1

A medida que crea una instancia de wdOBJ como enlace tardío, debe dimensionarlo como Objeto, no como Aplicación de Word. Después de eso debería ser capaz de eliminar la referencia.

Julian Kuchlbauer
fuente