我的情况如下:
我有一个插件调用,它使用单元格(1,1)中的公式查询服务器)。服务器发回响应,更改 cell(1,1) 的值。我的函数检测到这一点,然后调用一个显示函数,从 cell(6,1) 开始粘贴服务器发送到现金的数据。数据可能是 X 行和 Y 列大。
这就是我所拥有的:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.HasArray = False Then
If Target = Sheets("My_Sheet").Cells(1, 1) Then
If InStr(Target.Value, "ServerGettingData") = 0 Then
Sheets("My_Sheet").Cells(6, 1).Formula = "=My_Display_Call(A1)"
Sheets("My_Sheet").Cells(6, 1).Calculate
End If
End If
End If
End Sub
第一个 IF 语句是因为我在第二个 IF 语句中遇到类型不匹配,当时将数组数据粘贴到工作表中。但是,我仍然在同一行上遇到类型不匹配。
这一切都是为了通过两个异步调用来模拟同步活动。
编辑instr
IF 语句的要点是仅在服务器返回数据时检测更改,而不是获取数据。获取数据时,单元格会显示“ServerGettingData”,一旦检索到数据,就会显示其他内容。我试图检测的是后者。