【问题标题】:How to do this for loop in Excel? [closed]如何在 Excel 中执行此循环? [关闭]
【发布时间】:2020-10-28 22:18:46
【问题描述】:

我想知道您是否可以帮我在 Excel 中执行此 for 循环?

我可以用 Java 或 C 来做,但是用 Excel 就很难了!!看过一些入门教程,但是太复杂了!!

S(i) and T(i) are to explain that I need to go from S3 to S32, and T3 to T32

{
INT C4  = Intro!B5
INT var = 0

FOR i = 3 to 32
    IF  S(i) = INTRO!A12    THEN
        IF  T(i) = 0    THEN
            var = INTRO!B2
        ELSE    var = INTRO!B2 - T(i)
        ENDIF
    ELSE    var = 0
    ENDIF

    C4 = C4 - var
    i++
ENDFOR
}

这是我尝试过的,但它不起作用!

Sub title()

Dim i As Integer
Dim var As Integer
var.Value = 0

For i = 3 To 32
    If Cells(4,3).Value = "C" Then
        If Cells(i, 19) = 0 Then
            var = INTRO.Cells(2,2)
        Else: var = INTRO.Cells(2,2) - Cells(i,20)
        End If
    Else: var = 0
    Enf If
Cells(4,3) = Cells(4,3) - var
Next i

End Sub

【问题讨论】:

  • S 和 T 是什么意思?老实说,您最好解释一下您希望实现的目标,我已经转换了它,但这没有任何意义,您有一个 if 来确定 T(i) 是什么,如果它不为零,则从 a 中减去它号,为什么还要测试呢?每次都减去它,因为它为零时不会减去任何东西。然后有几个数组没有说明它们是什么。另外,当您输入 INTRO!B2 时,这是否意味着 INTRO 表上的范围 B2?
  • 细胞! S3,S4,到 S32!
  • 介绍 b2 和 b5 只是数字。我觉得不重要!是表格 INTRO 中的单元格 B2

标签: excel vba for-loop if-statement


【解决方案1】:

我基于您尝试的转换,有一些错误,但我想我已经清理了它们:

Sub title()
Dim i As Long, var As Long
var = 0
For i = 3 To 32
    If Cells(4, 3).Value = "C" Then
        If Cells(i, 19) = 0 Then
            var = Sheets("INTRO").Cells(2, 2).Value
        Else
            var = Sheets("INTRO").Cells(2, 2).Value - Cells(i, 20).Value
        End If
    Else
        var = 0
    End If
    Cells(4, 3) = Cells(4, 3) - var
Next
End Sub

注意在 VBA 中使用 Long 而不是 Integer 并直接赋值,var=0 不是 var.value = 0 因为它是一个变量而不是一个对象。

还有一个错字enf if 而不是end if

【讨论】:

  • 谢谢SSSSSSSSSSSSSS
  • 嘿,丹!我对您的代码有 2 个问题。首先是,在这种情况下宏是强制性的还是我们可以避免使用它们?而且,我需要重复所有这些宏 12 次。因此,使用 Sheets("Januray").Cells(4, 3) 到 12 月。你会怎么做?在java中,我会使用一个带有[12]的数组和一个跟随该数组中所有字符串的for循环,但我不知道我们是否可以在Excel中做到这一点!
  • 老实说,如果不了解您的工作表,我会冒险猜测嵌套 if 公式实际上可以在没有 Excel 的情况下完成这项工作。至于多张纸,再次使用公式会否定这种需要,但如果你想在代码中这样做,我会使用相同的方法,然后循环遍历具有 12 个元素的数组。如果您想走这条路,请告诉我,我会帮助您。
  • 对不起,应该阅读没有宏,而不是没有 Excel 大声笑
  • 好的,谢谢您的信息!是的,拜托,你能教我怎么做吗:D 太棒了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
  • 2013-06-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多