📄 form1.vb
字号:
Me.DataGridView3.Rows(j).Cells(0).Value = ""
Next
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3},TRUE,TRUE),1,1)"
rng1.FormulaR1C1 = myString
Dim a As Double = rng1.Value
Me.DataGridView3.Rows(0).Cells(0).Value = a
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3},TRUE,TRUE),1,2)"
rng1.FormulaR1C1 = myString
Dim b As Double = rng1.Value
Me.DataGridView3.Rows(1).Cells(0).Value = b
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3},TRUE,TRUE),1,3)"
rng1.FormulaR1C1 = myString
Dim c As Double = rng1.Value
Me.DataGridView3.Rows(2).Cells(0).Value = c
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3},TRUE,TRUE),1,4)"
rng1.FormulaR1C1 = myString
Dim d As Double = rng1.Value
Me.DataGridView3.Rows(3).Cells(0).Value = d
For i As Integer = 0 To 200
If Me.DataGridView2.Rows(i).Cells(0).Value <> "" Then
Dim x As Double = CDbl(Me.DataGridView2.Rows(i).Cells(0).Value)
Me.DataGridView2.Rows(i).Cells(1).Value = (a * x ^ 3 + b * x ^ 2 + c * x + d).ToString(".###")
End If
Next
Case 4
For j As Integer = 0 To 6
Me.DataGridView3.Rows(j).Cells(0).Value = ""
Next
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4},TRUE,TRUE),1,1)"
rng1.FormulaR1C1 = myString
Dim a As Double = rng1.Value
Me.DataGridView3.Rows(0).Cells(0).Value = a
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4},TRUE,TRUE),1,2)"
rng1.FormulaR1C1 = myString
Dim b As Double = rng1.Value
Me.DataGridView3.Rows(1).Cells(0).Value = b
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4},TRUE,TRUE),1,3)"
rng1.FormulaR1C1 = myString
Dim c As Double = rng1.Value
Me.DataGridView3.Rows(2).Cells(0).Value = c
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4},TRUE,TRUE),1,4)"
rng1.FormulaR1C1 = myString
Dim d As Double = rng1.Value
Me.DataGridView3.Rows(3).Cells(0).Value = d
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4},TRUE,TRUE),1,5)"
rng1.FormulaR1C1 = myString
Dim f As Double = rng1.Value
Me.DataGridView3.Rows(4).Cells(0).Value = f
For i As Integer = 0 To 200
If Me.DataGridView2.Rows(i).Cells(0).Value <> "" Then
Dim x As Double = CDbl(Me.DataGridView2.Rows(i).Cells(0).Value)
Me.DataGridView2.Rows(i).Cells(1).Value = (a * x ^ 4 + b * x ^ 3 + c * x ^ 2 + d * x + f).ToString(".###")
End If
Next
Case 5
For j As Integer = 0 To 6
Me.DataGridView3.Rows(j).Cells(0).Value = ""
Next
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4,5},TRUE,TRUE),1,1)"
rng1.FormulaR1C1 = myString
Dim a As Double = rng1.Value
Me.DataGridView3.Rows(0).Cells(0).Value = a
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4,5},TRUE,TRUE),1,2)"
rng1.FormulaR1C1 = myString
Dim b As Double = rng1.Value
Me.DataGridView3.Rows(1).Cells(0).Value = b
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4,5},TRUE,TRUE),1,3)"
rng1.FormulaR1C1 = myString
Dim c As Double = rng1.Value
Me.DataGridView3.Rows(2).Cells(0).Value = c
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4,5},TRUE,TRUE),1,4)"
rng1.FormulaR1C1 = myString
Dim d As Double = rng1.Value
Me.DataGridView3.Rows(3).Cells(0).Value = d
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4,5},TRUE,TRUE),1,5)"
rng1.FormulaR1C1 = myString
Dim f As Double = rng1.Value
Me.DataGridView3.Rows(4).Cells(0).Value = f
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4,5},TRUE,TRUE),1,6)"
rng1.FormulaR1C1 = myString
Dim g As Double = rng1.Value
Me.DataGridView3.Rows(5).Cells(0).Value = g
For i As Integer = 0 To 200
If Me.DataGridView2.Rows(i).Cells(0).Value <> "" Then
Dim x As Double = CDbl(Me.DataGridView2.Rows(i).Cells(0).Value)
Me.DataGridView2.Rows(i).Cells(1).Value = (a * x ^ 5 + b * x ^ 4 + c * x ^ 3 + d * x ^ 2 + f * x + g).ToString(".###")
End If
Next
Case 6
For j As Integer = 0 To 6
Me.DataGridView3.Rows(j).Cells(0).Value = ""
Next
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4,5,6},TRUE,TRUE),1,1)"
rng1.FormulaR1C1 = myString
Dim a As Double = rng1.Value
Me.DataGridView3.Rows(0).Cells(0).Value = a
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4,5,6},TRUE,TRUE),1,2)"
rng1.FormulaR1C1 = myString
Dim b As Double = rng1.Value
Me.DataGridView3.Rows(1).Cells(0).Value = b
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4,5,6},TRUE,TRUE),1,3)"
rng1.FormulaR1C1 = myString
Dim c As Double = rng1.Value
Me.DataGridView3.Rows(2).Cells(0).Value = c
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4,5,6},TRUE,TRUE),1,4)"
rng1.FormulaR1C1 = myString
Dim d As Double = rng1.Value
Me.DataGridView3.Rows(3).Cells(0).Value = d
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4,5,6},TRUE,TRUE),1,5)"
rng1.FormulaR1C1 = myString
Dim f As Double = rng1.Value
Me.DataGridView3.Rows(4).Cells(0).Value = f
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4,5,6},TRUE,TRUE),1,6)"
rng1.FormulaR1C1 = myString
Dim g As Double = rng1.Value
Me.DataGridView3.Rows(5).Cells(0).Value = g
myString = "=INDEX(LINEST(R2C2:R" & (num + 1).ToString & "C2,R2C1:R" & (num + 1).ToString & "C1^{1,2,3,4,5,6},TRUE,TRUE),1,7)"
rng1.FormulaR1C1 = myString
Dim h As Double = rng1.Value
Me.DataGridView3.Rows(6).Cells(0).Value = h
For i As Integer = 0 To 200
If Me.DataGridView2.Rows(i).Cells(0).Value <> "" Then
Dim x As Double = CDbl(Me.DataGridView2.Rows(i).Cells(0).Value)
Me.DataGridView2.Rows(i).Cells(1).Value = (a * x ^ 6 + b * x ^ 5 + c * x ^ 4 + d * x ^ 3 + f * x ^ 2 + g * x + h).ToString(".###")
End If
Next
End Select
'在excel中绘图
MyChart = MyExcelApp.Charts.Add()
MyChart.ChartType = Excel.XlChartType.xlXYScatter
MyChart.PlotArea.Width = 560
MyChart.PlotArea.Height = 400
MyChart.PlotArea.Top = 10
MyChart.PlotArea.Left = 80
Dim mySeriesCollection As Excel.SeriesCollection
mySeriesCollection = MyChart.SeriesCollection
Dim mySeries As Excel.Series
mySeries = mySeriesCollection.Item(1)
mySeries.XValues = "=Sheet1!R2C1:R201C1"
mySeries.Values = "=Sheet1!R2C2:R201C2"
mySeries.Name = "=""原始数据"""
mySeries.Trendlines.Add(Type:=Excel.XlTrendlineType.xlPolynomial, Order:=jieshu _
, Forward:=0, Backward:=0, DisplayEquation:=True, DisplayRSquared:= _
True).Select()
mySeries.Trendlines(1).DataLabel.top = 20
mySeries.Trendlines(1).DataLabel.left = 250
Dim x1(200) As String
Dim y1(200) As String
Dim strx As String = ""
Dim stry As String = ""
Dim temp As Integer = 0
For row As Integer = 0 To 200
If Me.DataGridView2.Rows(row).Cells(0).Value <> "" And Me.DataGridView2.Rows(row).Cells(1).Value <> "" Then
x1(row) = Me.DataGridView2.Rows(row).Cells(0).Value
y1(row) = Me.DataGridView2.Rows(row).Cells(1).Value
Else
temp = row - 1
Exit For
End If
Next
strx = "{" & x1(0)
stry = "{" & y1(0)
For row1 As Integer = 1 To temp
strx = strx & "," & x1(row1)
stry = stry & "," & y1(row1)
Next
strx = strx & "}"
stry = stry & "}"
If strx <> "{}" And stry <> "{}" Then
Dim mySeries1 As Excel.Series
mySeries1 = mySeriesCollection.NewSeries
'mySeries1 = mySeriesCollection.Item(2)
mySeries1.Name = "=""插值点"""
mySeries1.XValues = strx
mySeries1.Values = stry
End If
MyChart.Legend.Top = 340
MyChart.Legend.Left = 490
MyChart.Location(Where:=Excel.XlChartLocation.xlLocationAsNewSheet, Name:="插值与拟合")
MyExcelApp.ActiveWindow.Zoom = 100
MyExcelSheet.Name = "原始数据"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -