【问题标题】:Loop predefined sequence through cells in excel通过excel中的单元格循环预定义的序列
【发布时间】:2015-03-25 21:07:14
【问题描述】:

已经搜索了几个小时,现在我被卡住了。不太确定我在搜索什么,但猜测一些 VBA。

我想在excel中做的是:

有一个预定义的列表,即 [a,a#,b,c,c#...g#]

现在当有人在单元格 A20 中输入值“A”时,A19 将是列表中的下一个“A#”,A18 将是“B”,A17 将是“C”等等。

如果将值 C 输入到单元格 A20 中,则 A19 将是“C#”,依此类推...

一旦列表到达 G#,它将再次从 A 重复。这将重复,直到到达单元格 A2。

即使是正确方向的一点也很棒,因为我真的不知道要搜索什么。尝试过'arrays''loop''cycle'但运气不佳。

提前致谢

【问题讨论】:

    标签: list excel sequence cycle vba


    【解决方案1】:

    与搜索奇怪的术语相比,学习 VBA 的基础知识会更好。搜索“Excel VBA 教程”。有很多可供选择,所以尝试一些然后完成与您的学习风格相匹配的一个。我更喜欢书。我参观了一个不错的图书馆;回顾了他们的 Excel VBA Primers,然后借用了我认为最好在家里尝试的东西。最后我买了最好的作为永久参考书。

    您的问题非常不清楚,但我认为您需要在 Do 循环中使用 For Each 循环。您将在任何教程或入门书的开头附近找到循环介绍。尝试开发这个:

    Sub demo()
    
      Dim CellId As Variant
      Dim LoopCount As Long
    
      ' #### Replace Tidy with the name of a worksheet in your workbook.
      With Worksheets("Tidy")
    
        Do While True
          For Each CellId In Array("A20", "A19", "A18", "A17")
    
            Debug.Print CellId & "=" & .Range(CellId).Value
    
            If LoopCount >= 3 Then
              Exit Do
            End If
    
          Next
          LoopCount = LoopCount + 1
    
        Loop
    
      End With
    
    End Sub
    

    【讨论】:

    • 你可能是对的。我应该开始学习它。它只是在寻找时间,我通常是通过“摇摆不定”来获得的,因为我不经常使用它。关于垃圾解释的道歉我认为很清楚。我会尝试改写:在单元格 A20 中,用户可以从下拉菜单中选择以下值之一。 A、A#、B、C、C#、D、D#、E、F、F#、G、G#。 A20 上方的每个后续单元格(直到 A2)将按顺序显示下一个字母。因此,如果选择 A,则序列将从那里开始。如果选择 D,则上面的单元格将为 D#,依此类推。 G# 是序列的结尾,它将重复。
    • 但是是的。我想我会尝试学习基础知识,这样我就可以在第一时间做出更好的尝试。否则人们基本上只是为我写它,这不是很有效,更不用说粗鲁了。不过感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多