我喜欢10个excel文件,每个文件超过10K行。
我想将已分解为不同行的描述字段连接起来。有些记录有两行,有些有3行,有些甚至每行有5行或6行!每条记录都有一行,带有唯一的代码或行号。
我尝试使用嵌套if函数,但在确定记录何时有4行或更多行时,它变得太复杂了。
该文件如下所示:
A B
CODIGO DESCRIPCIÓN
R2 Dos Renglones
2R, Renglón Dos
R3 Tres Renglones
3R, Renglón 2
3R, Renglón 3
R4 Cuatro Renglones
4R, Renglón 2
4R, Renglón 3
4R, Renglón 4
R5 Cinco Renglones
5R Renglón 2
5R Renglón 3
5R Renglón 4
5R Renglón 5
R21 Dos Renglones
2R, Renglón Dos
R51 Cinco Renglones
5R Renglón 2
5R Renglón 3
5R Renglón 4
5R Renglón 5
R31 Tres Renglones
3R, Renglón 2
3R, Renglón 3
我可以使用一系列公式或宏来实现这些吗?
提前致谢。
答案 0 :(得分:1)
试试这段代码:
Sub sample()
Dim lastRow As Long
lastRow = Range("B" & Rows.Count).End(xlUp).Row
Dim CellA As String
Dim CellB As String
For i = 2 To lastRow
CellA = IIf(Cells(i, 1) = "", CellA, Cells(i, 1))
CellB = Cells(i, 2)
Cells(i, 3) = CellA & " " & CellB
Next
End Sub
更新了代码
Sub sample()
Dim lastRow As Long
lastRow = Range("B" & Rows.Count).End(xlUp).Row
Dim firstCell As Boolean
Dim dataCell As Range
Dim strVal As String
For i = 2 To lastRow
If Cells(i, 1) <> vbNullString Then
begin:
If firstCell = False Then
Set dataCell = Cells(i, 1)
firstCell = True
strVal = vbNullString
strVal = Cells(i, 2)
Else
Cells(dataCell.Row, 3) = strVal
firstCell = False
GoTo begin
End If
Else
strVal = strVal & ", " & Cells(i, 2)
End If
Next
Cells(dataCell.Row, 3) = strVal
End Sub