如果创建VBA,则循环遍历单元格区域

时间:2019-01-10 16:56:27

标签: 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 = "NoSplit"
End If
End Sub

有人可以帮我组合这些,以便遍历每一行并测试值吗?

更新:

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

  • 只有1张纸
  • 相关列为D列
  • 列D只能有没有小数点的数字
  • 我不知道此列中要提前多少行

2 个答案:

答案 0 :(得分:2)

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

这很容易将它们组合在一起。但是,如果行数很大,则由于与工作表对象进行交互会很费时间

答案 1 :(得分:0)

这就是我最终使用的...

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