Ошибка 2015 при попытке извлечь ячейку из закрытой книги (ячейка содержит текст) - PullRequest
0 голосов
/ 17 июня 2019

Я выполняю этот UDF и сопровождающий макрос для извлечения определенных значений ячеек из закрытых книг.

Он всегда работал нормально, так как степень извлечения содержимого ячейки всегда была словом или двумя, самое большее.

Теперь, когда я пытаюсь вытащить ячейку, которая содержит значительно больше текста (~ 800 символов), в качестве вывода отображается ошибка #VALUE!.

Я преобразовал ошибку для отображения в виде строки в MsgBox, результат: «Ошибка 2015».

Кто-нибудь знает обходной путь для этого? В основном текст в моем диапазоне "D10" слишком длинный, и в результате его не используют, используя приведенный ниже код.

Вот код, который я использую:

Option Explicit
Public MyObj As New FileSystemObject

Function GetValueFromClosedWorkbook(path, file, sheet, ref)
    Dim arg As String, xFolder As String

    If Right(path, 1) <> "\" Then path = path & "\"    ' check whether the file exists

    If Dir(path & file) = "" Then       
        GetValueFromClosedWorkbook = "File not found."
        Exit Function
    End If

    arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
    Range(ref).Address(, , xlR1C1)         'create the argument

    GetValueFromClosedWorkbook = ExecuteExcel4Macro(arg)
End Function


Sub GetTextsFromClosedWorkbooks()    
    Dim xPath As Object, xFolder As String

    Dim xSheet As String, xName As String, xExplanation As Variant, xTestNo As String, xFile As String, xCompleted As String, z As Long, y As Long, xColumnNo As Long

    Dim file As Variant

    Sheets("Test").Range("A8:M100").ClearContents
    xFolder = "\\generic path" 'path of files
    xSheet = "Test1"
    xName = "B7"
    xExplanation = "D10"

    z = 7 'number of rows used as headers

    Set xPath = MyObj.GetFolder(xFolder)
    For Each file In xPath.Files
        z = z + 1
        xFile = file.Name

        With Sheets("Test")
            MsgBox CStr(GetValueFromClosedWorkbook(xFolder, xFile, xSheet, xExplanation)) ''this is what displays Error 2015
           .Cells(z, 10) = GetValueFromClosedWorkbook(xFolder, xFile, xSheet, xExplanation)
        End With
    Next file

    z = 7 'number of rows used as headers
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...