如何让我的程序在某个单元格停止?

时间:2014-06-04 06:04:27

标签: excel vba excel-vba worksheet

嘿伙计们我是VBA的新手,因为我很难解决问题。

我正在尝试对数据输入进行一些计算,我必须让我的程序在" Discrepancy"之前停止在工作表上显示值。达到任何少于5.这应该使两个列" Money"和"差异"停在一起。之后,程序将在另一列(#34; I1"" Money2"和J1"" Discrepancy2")中输入t = 10时开始在公式中,值显示在第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

1 个答案:

答案 0 :(得分:0)

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

您可以尝试使用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

我不确定您对其他列的意图是什么,但如果您想继续第一列停止的位置,此循环会将t保留为您将使用的值