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