2014-12-03 124 views
1

这是一个excel vba子程序示例。我有两列数据,范围v和范围c - 如何将每个单元行的值与并行行调用值连接起来。For loop with multiple variables

理想情况下,我所要做的应该是这样

For Each c,b In v,bb 
... 
next c,b 

普莱斯让我进一步解释:细胞G2值只与J2,并与J3 G3

G2 value = Blue 
J2 value = Spaghetti 

我试图用一个for循环返回“蓝色意大利面条”?

G2 value = Red 
J2 value = Noodles 

我想用一个for循环返回“Red Noodles”?

Dim c As Variant 
Dim b As Variant 
Dim v As Range 
Dim bb As Range 
Dim brow As Long 
Dim vrow as long 

Set v = ActiveSheet.Range("G:G") 
vrow = v(v.Cells.Count).End(xlUp).Row 
Set v = Range(v(2), v(brow)) 

Set bb = ActiveSheet.Range("J:J") 
brow = bb(bb.Cells.Count).End(xlUp).Row 
Set bb = Range(bb(2), bb(brow))  

For Each c In v 
    c = Mid(c, 1, 4) 
    msgbox c 
Next c 

For each b in bb 
    msgbox b  
next b 

回答

5

看着你原来的帖子,我会说我对所有额外的东西感到困惑。看看这里发生了什么,并对问题进行评论。我认为你已经过了复杂的尝试。

Sub ConcatCols()  
    Dim lastRow As Long 
    Dim tempValue As String 

    lastRow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).row 

    For iRow = 2 to lastRow 
     tempValue = Sheets("Sheet1").Cells(iRow, "G").Text & " " & _ 
      Sheets("Sheet1").Cells(iRow, "J").Text 
     MsgBox tempValue 
    Next iRow  
End Sub 
+0

我怎样才能追加'tempValue =表( “工作表Sheet”)。将细胞(iRow, “G”)。Text'到'tempValue =表( “工作表Sheet”)。将细胞(MID(Irow,1, 4),“G”)。Text'我只是想要在G列中划分数值。 – phillipsK 2014-12-03 22:18:23

+0

你的Mid(iRow,1,4)不会做你的想法。你可以在上一步中将G中的记录切片,然后使用结果,而不是将其全部组合在一个公式中?只要抓住你想要拉的东西......你想从G中解脱出来? – peege 2014-12-03 22:20:02

+0

我能够在前一行中切片。我总是对精确的代码感兴趣,我很好奇是否有另一种方法可以用最少的语句来分割,谢谢。我在哪里可以找到有关VB属性和方法的信息,我经常发现自己试图'Sheets.range.value.cell.text' – phillipsK 2014-12-03 23:33:42