0

我的情况如下:

我有一个插件调用,它使用单元格(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 语句中遇到类型不匹配,当时将数组数据粘贴到工作表中。但是,我仍然在同一行上遇到类型不匹配。

这一切都是为了通过两个异步调用来模拟同步活动。

编辑instrIF 语句的要点是仅在服务器返回数据时检测更改,而不是获取数据。获取数据时,单元格会显示“ServerGettingData”,一旦检索到数据,就会显示其他内容。我试图检测的是后者。

4

1 回答 1

1

在工作表模块中添加以下内容:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Cells(1, 1)) Is Nothing Then

            If InStr(Target.Value, "ServerGettingData") = 0 Then
                Sheets("Cancelled").Cells(6, 1).Formula = "=My_Display_Call(A1)"
                Sheets("Cancelled").Cells(6, 1).Calculate
            End If

    End If

End Sub
于 2012-12-07T09:17:21.167 回答