如何从excel工作簿中的DDE源创建图表

时间:2018-01-14 11:02:41

标签: excel vba excel-vba

我一直在尝试从API创建图表。我在Excel工作表中设置了与API的连接,它显示了来自交易所的BTCUSD的移动价格。该值以设置的间隔更改,如excel中数据选项卡中的连接属性。我尝试了多种方法。

  1. Worksheet_Change(ByVal Target As Range)这不起作用,因为当API数据单元格中的值发生变化时,不会触发Worksheet_Change,但不了解原因。
  2. 链接到数据单元格的ActiveX文本框,这会触发textbox_change()事件但是我遇到了另一个问题,错误1004无法获取范围类的CurrentRegion属性。非常感谢您的协助。这是代码。

    Public Sub TextBox1_Change()
    With ThisWorkbook.Names("DDEList").RefersToRange.CurrentRegion
    With .Offset(.Rows.Count, 0).Resize(1, 1)
            .Value = Now
         .Offset(0, 1).Value = TextBox1.Value
    End With
    End With
    
    End Sub
    
  3. 在工作簿表中有一个名为DDEList的命名单元格,ActiveX文本框和单元格A1引用了API创建的表格数据。我知道如何从单元格中的数据创建图表,单元格数据的创建是个问题。

1 个答案:

答案 0 :(得分:1)

确定Workbook.SheetPivotTableUpdate可以解决问题。

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim X As Double
Dim Y As Double

X = Sheets("DDE").Range("C2").Value
Y = Sheets("DDE").Range("A16").Value
Z = Y - X
P = Z / X

  With ThisWorkbook.Names("DDEList").RefersToRange.CurrentRegion
    With .Offset(.Rows.Count, 0).Resize(1, 1)
        .Value = Now
        .Offset(0, 1).Value = Y
        .Offset(0, 2).Value = X
        .Offset(0, 3).Value = Z
        .Offset(0, 4).Value = P
    End With
  End With

End Sub

我现在在工作表上有一个图表,告诉我根据各种交易所的百分比差异列表买卖比特币的最佳时间和交易。