Excel中的VBA:从ActiveX文本框创build图表

我试图从5个ActiveX文本框中创build一个图表,我把它放在我的工作表中。 首先,用户input值,然后按下生成图表的button。

这是我的方法,但它不起作用。 它说类似“对象必要”

Private Sub CommandButton1_Click() Dim arKurse(4) As Double arKurse(0) = Conver.ToDouble(TextBox1.Text) arKurse(1) = Conver.ToDouble(TextBox2.Text) arKurse(2) = Conver.ToDouble(TextBox3.Text) arKurse(3) = Conver.ToDouble(TextBox4.Text) arKurse(4) = Conver.ToDouble(TextBox5.Text) Dim oChtObj As ChartObject Set oChtObj = ActiveSheet.ChartObjects.Add(Left:=445, Width:=385, Top:=10, Height:=245) With oChtObj.Chart .SeriesCollection.NewSeries .SeriesCollection.Values = arKurse .SeriesCollection.XValues = Array("1", "2", "3", "4", "5") .ChartType = xlLine .HasLegend = False .HasTitle = True .ChartTitle.Caption = "Chart" End With End Sub 

有几件事情不起作用

  1. Conver.ToDouble应该是CDbl,除非您有充分的理由使用自定义方法?
  2. TextBox.Text应该是一个用户表单上的Textbox.value,也是最好的限定文本框的位置与它的父母。 (在这种情况下Userform1,但如果文本框在工作表上可能是Sheet1)
  3. 需要定义哪个系列集合

以下更新希望工作

 Option Explicit Sub SetupUserformToTest() UserForm1.Show UserForm1.TextBox1.Value = 1 UserForm1.TextBox2.Value = 2 UserForm1.TextBox3.Value = 3 UserForm1.TextBox4.Value = 4 UserForm1.TextBox5.Value = 1 CommandButton1_Click End Sub Private Sub CommandButton1_Click() Dim arKurse(4) As Double arKurse(0) = CDbl(UserForm1.TextBox1.Value) arKurse(1) = CDbl(UserForm1.TextBox2.Value) arKurse(2) = CDbl(UserForm1.TextBox3.Value) arKurse(3) = CDbl(UserForm1.TextBox4.Value) arKurse(4) = CDbl(UserForm1.TextBox5.Value) Dim oChtObj As ChartObject Set oChtObj = ActiveSheet.ChartObjects.Add(Left:=445, Width:=385, Top:=10, Height:=245) With oChtObj.Chart .SeriesCollection.NewSeries 'Assumed series 1 .SeriesCollection(1).Values = arKurse .SeriesCollection(1).XValues = Array("1", "2", "3", "4", "5") .ChartType = xlLine .HasLegend = False .HasTitle = True .ChartTitle.Caption = "Chart" End With End Sub