Excel 在VBA中逐行应用代码的动态代码
Excel表格 我有以下代码,对应于工作表中的一行。我的问题是,如何编写这样的代码,使其连续地逐行应用代码,直到到达最后一行?那么,我该如何编写一个动态代码,如果我添加了新行,它将识别如何将代码应用于这些新行 对于上下文来说,这段代码所做的是接受用户输入,从March中减去该值,直到没有更多的用户输入要减去,或者March的值为0。如果三月是0,我们还没有减去所有的用户输入,那么我们就转到二月,做同样的事情,以此类推直到一月Excel 在VBA中逐行应用代码的动态代码,excel,vba,dynamic,Excel,Vba,Dynamic,Excel表格 我有以下代码,对应于工作表中的一行。我的问题是,如何编写这样的代码,使其连续地逐行应用代码,直到到达最后一行?那么,我该如何编写一个动态代码,如果我添加了新行,它将识别如何将代码应用于这些新行 对于上下文来说,这段代码所做的是接受用户输入,从March中减去该值,直到没有更多的用户输入要减去,或者March的值为0。如果三月是0,我们还没有减去所有的用户输入,那么我们就转到二月,做同样的事情,以此类推直到一月 Sub variance_sub() Dim reduce
Sub variance_sub()
Dim reduce As Double, c As Range, diff As Double
reduce = InputBox("what is the Variance required? (Pressure use a positive number)")
Set c = ActiveSheet.Range("T7") 'march cell
If reduce = 0 Then
MsgBox "No further action required"
ElseIf reduce > 0 Then 'This is for a pressure'
Do
If c.Value >= reduce Then
c.Value = c.Value - reduce
reduce = 0
Else
diff = reduce - c.Value
c.Value = 0
reduce = diff
End If
If c.Column > 1 Then Set c = c.Offset(0, -1) 'move left if we can
Loop While reduce > 0 And c.Column >= 18
Else
c.Value = c.Value + reduce
End If
End Sub
比如:
Sub variance_sub()
Dim reduce As Double, c As Range, diff As Double, rng As Range
reduce = InputBox("what is the Variance required? (Pressure use a positive number)")
'get range to process
With ActiveSheet
Set rng = .Range("T7:T" & .Cells(.Rows.Count, "T").End(xlUp).Row) 'march cell
End With
'loop through range
For Each c In rng.Cells
If reduce = 0 Then
Debug.Print "No further action required" 'probably don't want msgbox
ElseIf reduce > 0 Then 'This is for a pressure'
Do
If c.Value >= reduce Then
c.Value = c.Value - reduce
reduce = 0
Else
diff = reduce - c.Value
c.Value = 0
reduce = diff
End If
If c.Column > 1 Then Set c = c.Offset(0, -1) 'move left if we can
Loop While reduce > 0 And c.Column >= 18
Else
c.Value = c.Value + reduce
End If
Next c
End Sub
对不起,我不知道有一个接受按钮。一直都是唐纳克斯。所以,你想要的不是T7,而是T8等等?如果是这样的话,基本上你只需要把所有这些都打包在一个循环中,这个循环贯穿T7:T?。谢谢你,我最终创建了以下内容,只是因为电子表格中有一些细微差别没有显示在屏幕截图中。Numrows=Range(“C7”,Range(“C7”).End(xlDown)).Rows.Count-2“不能是黑色的新行添加”否则这将变得混乱“x=0的MsgBox Numrows减少=输入框(“所需的方差是多少?(压力使用正数)”)设置c=ActiveSheet.Cells(7+x,20)“有些行被突出显示为某种颜色,公式无法应用于该颜色,但在询问之前,我想尝试一下如何合并该条件。