我是 Excel-VBA 的新用户。所以,我正在尝试一个小项目来教自己婴儿步骤。我希望创建一个交互式图表,显示 sin (x)、cos (x) 或 tan (x) 的曲线,具体取决于用户在我创建的用户窗体上单击的按钮。
下面是模块 1 的 VBA 代码。此代码创建图表,在工作表中定位图表,生成 x 值,并为 sin (x) 集生成 y 值。到目前为止,我只为 sin (x) 集创建了 y 值,因为我更关心让用户窗体按钮执行我希望它们执行的操作。另外,我想快点发布这个问题!
Option Explicit
---------------------------------------------------------------------------------
Sub one()
'VARIABLES
Dim Row As Integer
Dim j As Single
Dim pi As Single
pi = 3.14159265359
'LABEL X SET
Cells(1, 38).Value = "X"
'GENERATE X VALUES
j = -4 * pi
For Row = 2 To 82
Cells(Row, 38).Value = j
j = j + 0.025 * pi
Next Row
'LABEL / GENERATE Y VALUES = SIN ( X )
Cells(1, 39).Value = "SIN ( X )"
For Row = 2 To 82
Cells(Row, 39).Value = Sin(Cells(Row, 38).Value)
Next Row
'CREATE CHART 1
Dim c As Chart
Set c = ActiveWorkbook.Charts.Add
Set c = c.Location(where:=xlLocationAsObject, Name:="Sheet1")
With c
.ChartType = xlXYScatter
.Axes(xlValue).MajorGridlines.Delete
.Legend.Delete
End With
'POSITION CHART 1
Dim cobject As ChartObject
Dim r As Range
Set cobject = ActiveSheet.ChartObjects(1)
Set r = ActiveSheet.Range(Cells(1, 1), Cells(37, 22))
cobject.Left = r.Left
cobject.Top = r.Top
cobject.Width = r.Width
cobject.Height = r.Height
'DISPLAY USERFORM 1
Userform1.Show
End Sub
我创建的简单用户窗体有三个命令按钮。按钮 1 用于 Sin (x),按钮 2 用于 Cos (x),按钮 3 用于 Tan (x)。下面是我为 Button1_Click 编写的代码。它不是模块一的一部分。它位于项目资源管理器中自己的部分下。VBAProject/Forms/Userform1
Option Explicit
---------------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
Dim sinx As Series
Set sinx = c.SeriesCollection.NewSeries :::ERROR
With sinx
.Values = Range(Cells(2, 39), Cells(82, 39))
.XValues = Range(Cells(2, 38), Cells(82, 38))
.Format.Fill.ForeColor.RGB = rgbBlack
c.SeriesCollection(1).MarkerSize = 2
End With
End Sub
所以...我运行模块 1。它成功地将 x 值生成到它们各自的范围,将 sin (x) 值生成到它们各自的范围,创建和定位图表,并显示 UserForm1。然而!当我单击用户窗体上的按钮 1 时,出现错误...
编译错误:未定义变量
Excel 请突出显示导致错误的代码行。我用 :::ERROR 表示这行代码我假设错误是指我在模块 1 中定义为图表的“c”。我猜定义的变量不会从模块 1 转移到 userform1。
我的目标是让用户能够单击用户窗体上的 sin (x) aka 按钮 1 或 cos (x) 按钮 2 或 tan (x) 按钮 3,然后 sin、cos 或 tan 的曲线应该向上在图表上。我提前感谢 stackoverflow 的所有成员对此调查发表评论。我很感激任何帮助。