我正在尝试使用xlOLELinks链接从OLE源导入到excel数据。我的代码在调试模式下或使用断点时都可以正常运行,但是如果我运行它,则不间断的链接并不总是更新,并且会得到
类型不匹配错误(运行时错误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 |