Excel 创建VBA If然后在单元格范围内循环

Excel 创建VBA If然后在单元格范围内循环,excel,vba,loops,if-statement,Excel,Vba,Loops,If Statement,我有两个独立工作的代码位,但我不知道如何组合它们。我想检查一列数字,测试它们是否>=100,如果为真,则更改结果 我不知道该列将有多少行,因此我在该宏的另一部分中使用了以下行 Range("D1:D" & Final & ""). 我已经成功地测试了单个细胞,直接指定如下: Sub CellTest() Dim cell As Integer cell = Range("D7").Value If cell >= 100 Then Range("D7").Value =

我有两个独立工作的代码位,但我不知道如何组合它们。我想检查一列数字,测试它们是否>=100,如果为真,则更改结果

我不知道该列将有多少行,因此我在该宏的另一部分中使用了以下行

Range("D1:D" & Final & "").
我已经成功地测试了单个细胞,直接指定如下:

Sub CellTest()
Dim cell As Integer
cell = Range("D7").Value
If cell >= 100 Then
Range("D7").Value = "NoSplit"
End If
End Sub
有谁能帮我把这些结合起来,让它遍历每一行并测试值吗

更新:

此电子表格通过网页上的脚本下载,每次都有不同的名称。有几件事我会提前知道,比如

  • 只有一张
  • 所讨论的列是D列
  • D列只包含没有小数点的数字
  • 我不知道这一列中提前有多少行
这很容易将它们结合起来。但是,如果行数很大,则由于与图纸对象交互,这将非常耗时


这很容易将它们结合起来。但是,如果行数很大,那么由于与图纸对象交互,这将非常耗时。

这就是我最终使用的

Public Sub testforhundred()
    Dim rcell As Range, rng As Range
    Set rng = Application.ActiveSheet.Range("D1:D" & Application.ActiveSheet.UsedRange.Rows.Count)
    For Each rcell In rng.Cells
        If rcell.Value >= 100 Then rcell.Value = "NoSplit"
    Next rcell
End Sub

这就是我最后使用的

Public Sub testforhundred()
    Dim rcell As Range, rng As Range
    Set rng = Application.ActiveSheet.Range("D1:D" & Application.ActiveSheet.UsedRange.Rows.Count)
    For Each rcell In rng.Cells
        If rcell.Value >= 100 Then rcell.Value = "NoSplit"
    Next rcell
End Sub

我看到有一个答案为您列出,但会提出一些基本的循环。循环将遍历一个值数组;就这样。你用它做什么可以是简单的,也可以是复杂的。让我们使用“i”作为变量来解释迭代。。。您的数据可以是列a(1)中的一系列单元格,从第1行到第10行,您希望按1乘1,例如,1到2、2到3、3到4等等。您可以生成一个for循环来说明这一点,例如对于i=1到10步骤1,您可以使用循环中的单元格(i,1)使用迭代值(行)。@Cyril我看到了该方法的演示,但我不确定如何利用它,因为我不知道有多少行。我看到有一个答案为您列出,但会提出一些基本的循环。循环将遍历一个值数组;就这样。你用它做什么可以是简单的,也可以是复杂的。让我们使用“i”作为变量来解释迭代。。。您的数据可以是列a(1)中的一系列单元格,从第1行到第10行,您希望按1乘1,例如,1到2、2到3、3到4等等。您可以生成一个for循环来说明这一点,例如对于i=1到10步骤1,您可以使用循环中的单元格(i,1)使用迭代值(行)。@Cyril我看到了该方法的演示,但是我不确定如何使用它,因为我不知道有多少行。嗯,每次使用时,工作表名称都会改变,所以硬编码是不行的:(它是一个指定的工作表还是
ActiveSheet
?@FreeSoftwareServers,您的问题没有提到任何关于动态工作表的内容。如果这是一个标准,则需要在您的问题中列出。即使有您的评论,也不清楚是哪一个工作表。是否要在所有工作表中循环此代码?某些工作表?它是否只在sele上运行检查表?请回答您的问题并详细说明criteria@FreeSoftwareServers对于所有广泛的用途,答案可以解释如何做某事(不必是可复制粘贴的响应),这是一个可以理解的假设,即提出问题的人在与专家交谈时对主题有一定的了解。本质上,问题的海报必须能够识别回答所述问题的专家提出的观点。通过,您应该能够将Doug的答案应用到您的代码中。(如果它解决了您的问题,请不要忘记将其标记为正确)。嗯,每次使用时图纸名称都会更改,因此硬编码是不可能的:(它是一个指定的工作表还是
ActiveSheet
?@FreeSoftwareServers,您的问题没有提到任何关于动态工作表的内容。如果这是一个标准,则需要在您的问题中列出。即使有您的评论,也不清楚是哪一个工作表。是否要在所有工作表中循环此代码?某些工作表?它是否只在sele上运行检查表?请回答您的问题并详细说明criteria@FreeSoftwareServers对于所有广泛的用途,答案可以解释如何做某事(不必是可复制粘贴的响应),这是一个可以理解的假设,即提出问题的人在与专家交谈时对主题有一定的了解。本质上,问题的海报必须能够识别回答所述问题的专家提出的观点。通过,您应该能够将Doug的答案应用到您的代码中。(如果它解决了您的问题,请不要忘记将其标记为正确)。