2014-12-03 259 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