xlOLEL ссылки в цикле не обновляются (vba, excel) - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь импортировать в Excel данные из источника OLE, используя ссылки xlOLELinks.Мой код работает нормально в режиме отладки или с использованием точек останова, но если я запускаю его, нон-стоп ссылки не всегда обновляются, и я получаю ошибку несоответствия типов

(ошибка времени выполнения 13).

Я уже пытался активировать свою электронную таблицу, обновлять избыточные ссылки, по-разному писать один и тот же код, но я не могу понять ... Есть идеи, что я делаю неправильно?

  'Links missing the index and to be completed in the loop
  TimeStr = "DM|Dictionary!JDP_TIME."
  PressureStr = "DM|Dictionary!JDP_TRTPRESS."
  RateStr = "DM|Dictionary!JDP_SLRYRATE."
  Worksheets("Data").Activate

  Row = 1
  While Not ExitFlag
    'Link + index
    ActiveWorkbook.UpdateLink Name:=TimeStr & CStr(Row - 1), Type:=xlOLELinks
    ActiveWorkbook.UpdateLink Name:=PressureStr & CStr(Row - 1), Type:=xlOLELinks
    ActiveWorkbook.UpdateLink Name:=RateStr & CStr(Row - 1), Type:=xlOLELinks

    'Transfering the values to a table
    Cells(Row + 1, 1) = Cells(1, 9)
    Cells(Row + 1, 2) = Cells(1, 10)
    Cells(Row + 1, 3) = Cells(1, 11)

    'Updating the links
    ActiveWorkbook.ChangeLink Name:=TimeStr & CStr(Row - 1), _
                          NewName:=TimeStr & CStr(Row), _
                          Type:=xlOLELinks
    ActiveWorkbook.ChangeLink Name:=PressureStr & CStr(Row - 1), _
                          NewName:=PressureStr & CStr(Row), _
                          Type:=xlOLELinks
    ActiveWorkbook.ChangeLink Name:=RateStr & CStr(Row - 1), _
                          NewName:=RateStr & CStr(Row), _
                          Type:=xlOLELinks

    'Updating the index for the next set of data
    Row = Row + 1

    ' If the last value in column A is zero, break the loop
    LRow = Cells(Rows.Count, 1).End(xlUp).Row
    If Cells(LRow, 1) = 0 Then ExitFlag = True
  Wend


    'Resets links to the initial values
    ActiveWorkbook.ChangeLink Name:=TimeStr & CStr(Row - 1), _
                          NewName:=TimeStr & "0", _
                          Type:=xlOLELinks
    ActiveWorkbook.ChangeLink Name:=PressureStr & CStr(Row - 1), _
                          NewName:=PressureStr & "0", _
                          Type:=xlOLELinks
    ActiveWorkbook.ChangeLink Name:=RateStr & CStr(Row - 1), _
                          NewName:=RateStr & "0", _
                          Type:=xlOLELinks

так ...

Вот что я получаю:

|   A  |   B  |   C  |
|    1 | 14.9 |   80 |
|    2 |   20 | #N/A |
| #N/A | #N/A | #N/A |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...