2014-09-30 221 views
1

我试图循环访问一列数据并更改文本boxt以显示结果数据。目前这是我的代码Excel迭代循环VBA

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 

我想我需要隔离的行数,但不知道如何...帮助!

回答

0

你接近,但你需要将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 
+0

如果我想从第三行开始,它将是索引+3? – rlw2235 2014-09-30 17:28:12

+0

好问题,我已经编辑了答案。你可以做到这一点,或者你可以改变你的开始索引到三(第二个例子)。 – 2014-09-30 17:31:25

+0

这是返回循环的最后一个值...也许我正在使用错误的循环...我试图返回一个值,这取决于返回的索引。我有一个组合框,当选择取决于选择什么我想返回列表索引并引用该列中的数字 – rlw2235 2014-09-30 17:34:28