⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.vb

📁 vb.net编辑插值与拟合软件
💻 VB
📖 第 1 页 / 共 3 页
字号:
                                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 + -