需要连接使用macros的不同数量的单元格

我需要根据前一个单元格中的variables连接一列单元格。 这将继续,直到指定的variables更改。 例如:

   ABCDE
 1×@ 1 + 2 + 3
 2 x @ 2
 3 x @ 3
 4 y%1%1 +%2 +%3
 5 y%2
 6 y%3
等等

我需要macros查看A1,如果它是x,那么在E1中开始连接string。 然后移动到A2,如果它将D2加到E1中的级联值,然后移动到A3,如果它是D3中的值加到E1中的级联值等等。一旦它在列A中碰到一个新variables(y )过程重新开始。 这是可能吗? 非常感谢您的帮助!!

这是一些快速和肮脏的代码,但它的function:

Dim i As Integer Dim j As Integer i = 1 j = 1 Dim initialValue As String initialValue = Cells(i, 1).Value Do While Cells(i, 1).Value <> "" Cells(j, 5).Value = "" Do While Cells(i, 1).Value = initialValue Cells(j, 5).Value = Cells(j, 5).Value & Cells(i, 4).Value i = i + 1 Loop initialValue = Cells(i, 1).Value j = j + 1 Loop 

它假定活动工作表是您的列的那个。 列号是硬编码的,你从第一行开始。

这里是一个公式,粘贴到E2并抄下来,这将解决您的问题。 它不会整齐地把你的答案放到E1,E4等,但会逐渐降低列。

尽pipe你可以在VBA中完成你的工作。

式:

 =IF(A2<>A1,D2,E1&D2) 

尝试这个:

 Dim row As Integer Dim col As Integer Dim working_row As Integer Dim rowVal As String, myStr As String rowVal = "" row = 1 col = 4 While Cells(row, 1).Value <> "" If Cells(row, 1).Value <> rowVal Then myStr = "" working_row = row rowVal = Cells(row, 1).Value End If myStr = myStr & CStr(Cells(row, col).Value) Cells(working_row, col + 1).Value = myStr row = row + 1 Wend