首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA excel。循环遍历条件

VBA excel。循环遍历条件
EN

Stack Overflow用户
提问于 2015-10-20 06:51:15
回答 1查看 199关注 0票数 0

我要遍历A列。

如果下一个数大于前一个数,则继续(A: 0,1,2,3.)。如果下一个数小于(A: 0,1,2,3,4,4..).

  • If

  • is (A:0,1,2,3,4,3.)),则继续执行此操作,直到下一个数等于或小于(A:1,2,3,4,3.)。或等于,取最高的#4减去最低的#0,并将结果放在columnB中最高数字的旁边。
  • 如果下一个数字等于上一个数字,则减去并将答案0放入columnB。
  • 如果下一个数字小于前一个数字,则继续。这样做,直到下一个数字等于或小于。
  • 如果数字小于或等于,取最高的#4减去最低的#0...

我不确定我是否清楚,但我认为循环可能适用于这种情况。或者任何其他的想法都会得到极大的赞赏。提前谢谢。

代码语言:javascript
复制
     A   B
1    0   
2    1
3    2
4    3
5    4   4
6    4   0
7    3
8    2
9    1
10   0   4
11   1
12   2   2
13   2   0
14   3
15   4   2
...  ...  
EN

回答 1

Stack Overflow用户

发布于 2015-10-20 07:19:31

你可以用字典...将行号添加到键值并检查位置...

代码语言:javascript
复制
 Sub YourLoop()

   Dim dic As Scripting.Dictionary
   Set dic = New Scripting.Dictionary

   Dim i As Integer
   Dim n As Integer

For i = 1 To Rows.Count

     ''ColumnA values
     dic.Add i, Cells(i, 1).Value

Next i


Dim k1 As Integer
Dim k2 As Integer
Dim k3 As Integer
Dim k4 As Integer

Dim v1 As Integer
Dim v2 As Integer
Dim v3 As Integer
Dim v4 As Integer
Dim v As Integer

Dim c As Integer
c = 1

For Each key In dic.Keys

   v = dic(key)

   If c = 1 Then
    ''do nothing
   ElseIf c = 2 Then
    k1 = key - 1
    v1 = dic(k1)

    If v <= v1 Then

    End If

   ElseIf c = 3 Then
    k2 = key - 2
    k1 = key - 1

    v1 = dic(k1)
    v2 = dic(k2)


   ElseIf c >= 4 And c < dic.Count Then

    k4 = key - 4
    k3 = key - 3
    k2 = key - 2
    k1 = key - 1

    v1 = dic(k1)
    v2 = dic(k2)
    v3 = dic(k3)
    v4 = dic(k4)

    ElseIf c = dic.Count Then

    End If

    c = c + 1
Next
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33225265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档