异常来自hresult:0x80020003(DISP_E_MEMBERNOTFOUND

改的别人的代码,编程方面一窍不通。
通过Arduino读取数据,将处理后的数据导入到excel中。
原arduino显示的数据:

img

更改后的arduino数据:

img

原处理数据部分代码:

Const sensor_num As Integer = 6
Dim xlObject(3) As Object
Dim xlAgent(0, sensor_num * 3)
Dim data As String
Dim data_arr() As String
中间部分省略
 data_arr = Split(data, ",")
            For i = 1 To sensor_num
                xlAgent(0, i + sensor_num * 0) = data_arr(i * 6 - 6)
                xlAgent(0, i + sensor_num * 1) = data_arr(i * 6 - 4)
                xlAgent(0, i + sensor_num * 2) = data_arr(i * 6 - 2)
            Next
中间省略
 With xlObject(3)
                If count = 1 Then
                    '.range("B6:T10000").clearcontents()
                    .cells(2, 2) = rec_time.ToString("yyyy/MM/dd HH:mm:ss.fff")
                End If
                xlAgent(0, 0) = rec_time.ToString("yyyy/MM/dd HH:mm:ss.fff")
                .range(.cells(5 + count, 2), .cells(5 + count, 20)) = xlAgent
                .range(.cells(5 + count, 21)) = xlke1
                .range(.cells(5 + count, 22)) = xlke2
            End With

更改后的代码:

Const sensor_num As Integer = 6
Dim xlObject(3) As Object
Dim xlAgent(0, sensor_num * 3)
Dim xlke1
Dim xlke2
Dim data As String
Dim data_arr() As String
略
            data_arr = Split(data, ",")
            For i = 1 To sensor_num
                xlAgent(0, i + sensor_num * 0) = data_arr(i * 6 - 6)
                xlAgent(0, i + sensor_num * 1) = data_arr(i * 6 - 4)
                xlAgent(0, i + sensor_num * 2) = data_arr(i * 6 - 2)
            Next
            xlke1 = data_arr(36)
            xlke2 = data_arr(37)
略
            With xlObject(3)
                If count = 1 Then
                    '.range("B6:T10000").clearcontents()
                    .cells(2, 2) = rec_time.ToString("yyyy/MM/dd HH:mm:ss.fff")
                End If
                xlAgent(0, 0) = rec_time.ToString("yyyy/MM/dd HH:mm:ss.fff")
                .range(.cells(5 + count, 2), .cells(5 + count, 20)) = xlAgent
               .range(.cells(5 + count, 21)) = xlke1
                .range(.cells(5 + count, 22)) = xlke2

更改后再运行就出现

找不到成员。(异常来自HRESULT:0x80020003(DISP_E_MEMBERNOTFOUND))

的结果了

按我理解的范围内应该只需要改这几处数据。如果有需要我可以再补充下代码。

原因
这个可能不是代码的问题,
跟VS版本可能有关系


尝试解决方法
1、原先代码没修改之前是否在本机进行过运行,
如果没有的话那么大概率不是代码修改的问题,
而是VS版本问题,
尝试将VS版本进行升级解决这个问题。

如 将Visual Studio 升级到 16.9.1——问题就解决了

参考链接:


如有问题及时沟通

参考一下这个:
https://blog.csdn.net/qq_34059693/article/details/103162163

问题解决了,问题在

               .range(.cells(5 + count, 21)) = xlke1
               .range(.cells(5 + count, 22)) = xlke2

对单个数据不需要.range,直接

               .cells(5 + count, 21) = xlke1
               .cells(5 + count, 22) = xlke2

即可