【问题标题】:Excel Iterate Loop VBAExcel迭代循环VBA
【发布时间】:2014-09-30 17:04:59
【问题描述】:

我正在尝试遍历一列数据并更改文本框以显示结果数据。目前这是我的代码

For index = 0 To 34 Step 1
    Me.txtLat.Text = ws.Range("F3")
    Me.txtLong.Text = ws.Range("G3")
Next index

但是我希望“F3”根据索引更改为“F4”、“F5”等。我敢肯定这很简单,只是严重的脑抽筋。

我尝试了以下方法,但没有成功

For index = 0 To 34 Step 1
    Me.txtLat.Text = ws.Range("F3+index")
    Me.txtLong.Text = ws.Range("G3+index")
Next index

我想我需要隔离行号,但不确定如何...帮助!

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    关闭,但您需要将 index 变量连接到字符串,如下所示:

    For index = 3 To 34 Step 1
        Me.txtLat.Text = ws.Range("F" & index).value
        Me.txtLong.Text = ws.Range("G" & index).value
    Next index
    

    但这是一个文本框,因此您只会显示最后一个值。


    如果您想将项目添加到组合框中的列表中,请尝试以下操作:

    For index = 3 To 34 Step 1
        Me.txtLat.AddItem = ws.Range("F" & index).value
        Me.txtLong.AddItem = ws.Range("G" & index).value
    Next index
    

    你可能还会发现你需要先清除它,这样你就不会得到重复的列表。

    Me.txtLat.Clear
    

    【讨论】:

    • 如果我想从第三行开始,那就是 index + 3?
    • 好问题,我已经编辑了答案。您可以这样做,也可以将起始索引更改为三个(第二个示例)。
    • 这是返回循环的最后一个值......也许我使用了错误的循环......我试图根据返回的索引返回一个值。我有一个组合框,当根据选择的内容进行选择时,我想返回该列表索引并在列中引用该数字
    • 我应该仔细查看您的请求,抱歉。是的,文本框只会显示一个值,该值将是最后一个循环。如果您想要一个组合框,那么您需要“添加”该值。 txtLat & txtLong 是组合框还是文本框?
    • 我想通了非常感谢...我不需要 For 循环,因为索引号已经在我的程序中计算过,我只是引用了索引号和你一样的范围显示并使用它在范围内移动...非常感谢您的帮助
    猜你喜欢
    • 2023-03-22
    • 2021-04-27
    • 2015-05-03
    • 1970-01-01
    • 2015-11-14
    • 2017-05-26
    • 2023-03-29
    相关资源
    最近更新 更多