Невозможно сохранить значения в листе Excel, работал вчера - PullRequest
0 голосов
/ 09 июля 2019

Строка Excel.Application.ActiveWorkbook.Worksheets (wkshtName) .Range ("A" & n + 1) = part_name_string не работает, но не генерирует никаких ошибок, поэтому я не вижу, в чем проблема.

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

Sub WordGrab()
    Dim n As Integer
    Dim SentenceWords
    Dim arrayofWords
    Dim Rng As Range
    Dim ID_array
    Dim part_name_string As String
    Dim ParagraphCount As Integer
    Dim part_name_array(6) As String

    Dim oXL As Excel.Application 'Requires loading "Microsoft Excel 16.0 Object Library" from Tools -> References
    Dim oWB As Excel.Workbook
    Dim oSheet As Excel.Worksheet
    Dim oRng As Excel.Range
    Dim ExcelWasNotRunning As Boolean
    Dim WorkbookToWorkOn As String 'Path of Excel workbook
    Dim wkshtName As String 'Name of Excel worksheet
wkshtName = "My Worksheet"

WorkbookToWorkOn = "C:\ …"

On Error Resume Next
Set oXL = GetObject(, "Excel.Application")

If Err Then 'If Excel was not started, starts Excel
    ExcelWasNotRunning = True
    Set oXL = New Excel.Application
End If

    Set oWB = oXL.Workbooks.Open(FileName:=WorkbookToWorkOn) 'Opens Excel workbook

   ''''' several lines later ''''''

ParagraphCount = ActiveDocument.Paragraphs.Count

    For n = 1 To ParagraphCount
            SentenceWords = ActiveDocument.Paragraphs(n) ' Takes all text in the n'th paragraph and stores in string / variant
            arrayofWords = Split(SentenceWords, "|") 'Cuts paragraph into different strings separated by |
            ID_array = Split(arrayofWords(0), " ") 'Stores the first string in arrayofWords in ID_array
            I = 1 ‘Initializes I at the second string in arrayofWords

            While Len(arrayofWords(I)) < 20 'Leaves off the last string separated by | since it will be long.
                part_name_array(I - 1) = arrayofWords(I) 'Puts the remaining strings into part_name_array
                I = I + 1
            Wend

        part_name_string = Join(part_name_array, " ") 'Combines part_name_array into one string
        part_name_string = Trim(part_name_string) 'Removes unnecessary spaces
        Excel.Application.ActiveWorkbook.Worksheets(wkshtName).Range("A" & n + 1) = part_name_string 'Pastes part_name_array into the first column in the excel worksheet.
        Next n

Я ожидаю, что значение part_name_string должно быть сохранено в A2 и т. Д. На рабочем листе.Но рабочий лист остается пустым после запуска кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...