Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何使我的程序在某个单元停止?_Vba_Excel_Worksheet - Fatal编程技术网

Vba 如何使我的程序在某个单元停止?

Vba 如何使我的程序在某个单元停止?,vba,excel,worksheet,Vba,Excel,Worksheet,嘿,伙计们,我是VBA for excel的新手,我遇到了一个问题 我正在尝试对数据输入进行一些计算,我必须让我的程序在“差异”小于5之前停止在工作表上显示值。这将使“Money”和“discountance”两列同时停止。之后,当t=10输入到公式中时,程序将在另一列(列“I1”表示“Money2”,列“J1”表示“Discrepancy2”)中启动,并在列I2和J2中显示值,直到结束 我不确定如何在它到达之前停止它,也不确定如何同时停止另一列。我也不确定它是否会继续另一个t=10 有什么建议

嘿,伙计们,我是VBA for excel的新手,我遇到了一个问题

我正在尝试对数据输入进行一些计算,我必须让我的程序在“差异”小于5之前停止在工作表上显示值。这将使“Money”和“discountance”两列同时停止。之后,当t=10输入到公式中时,程序将在另一列(列“I1”表示“Money2”,列“J1”表示“Discrepancy2”)中启动,并在列I2和J2中显示值,直到结束

我不确定如何在它到达之前停止它,也不确定如何同时停止另一列。我也不确定它是否会继续另一个t=10

有什么建议吗

Sub solver2()
Dim t As Double, v As Double, i As Integer
Dim rowG As Integer, rowH As Integer

i = 0: v = 0 'related to formuala

'Range("A3").Select
'Range("D3").Select
Range("G1").Value = "Money"
Range("H1").Value = "Discrepancy"
Range("G2").Select

For t = 0 To tf Step delta
    ActiveCell.Offset(i, 0) = t

    ActiveCell.Offset(i, 1) = v

    v = v + delta * accel(t, v)

    i = i + 1

Next t



rowG = ActiveSheet.Range("G2").End(xlDown).row
rowH = ActiveSheet.Range("H2").End(xlDown).row

For i = rowG To 1 Step -1
    Dim val1 As Long

    val1 = ActiveSheet.Range("G" & i).Value

    If (val1 > 5) Then

        ActiveSheet.Range("G" & i).EntireRow.Delete

    End If

Next i

For i = rowH To 1 Step -1

    Dim val2 As Long

    val2 = ActiveSheet.Range("G" & i).Value

    If (val2 > 5) Then

        ActiveSheet.Range("G" & i).EntireRow.Delete

    End If

Next i



For t = 0 To 10 Step delta 'This steps it per delta input

    Range("I1").Value = "Money2"
    Range("J1").Value = "Discrepancy2"
    Range("I2").Select


    ActiveCell.Offset(i, 0) = t

    ActiveCell.Offset(i, 1) = v

    v = v + delta * accel(t, v)

i = i + 1

Next t


End Sub

如果只需要单元格显示为空,可以使用将文本和背景颜色设置为相同

您可以尝试do while循环而不是for循环来设置第一组中的值:

  Do While t <= tf And v < 5
    ActiveCell.Offset(i, 0) = t
    ActiveCell.Offset(i, 1) = v
    v = v + Delta * accel(t, v)
    i = i + 1
    t = t + Delta
  Loop
Do While t