如果在其中一个单元格中满足某些条件,我试图连接两个单元格。
具体来说:如果D列的单元格中的最后一个字符=" XX"然后连接。我已经做了类似于下面的事情并且每次都会出错。
Sub concatenate()
Last = Cells(Rows.Count, 4).End(xlUp).Row
For i = Last To 1 Step -1
If Right(Cells(i, 4), 4) = " XX " Then
'do some stuff to concatenate'
End If
Next i
End Sub
非常感谢任何帮助。
答案 0 :(得分:2)
这是你的反向循环,添加了一些错误控制。
Sub concat()
Dim i As Long, l As Long
l = Cells(Rows.Count, 4).End(xlUp).Row
For i = l To 1 Step -1
If Not IsEmpty(Cells(i, 4)) Then
If Not IsError(Cells(i, 4)) Then
If LCase(Right(Cells(i, 4).Value, 4)) = LCase(" XX ") Then
'do some stuff to concatenate'
'maybe...
Cells(i, 4) = Cells(i, 4).Value & " - " & Cells(i, 5).value
Cells(i, 5).clearcontents 'clears value; use Cells(i, 5).clear to clear everything
End If
End If
End If
Next i
End Sub
对空单元格运行字符串操作是不必要的,可能会产生错误。尝试在有错误的单元格上运行相同的操作将始终抛出Run-time error '13': Type mismatch
。您可能还有其他需要适应的特殊条件,但这应该可以帮助您入门。
最后,VBA中的直接字符串比较通常是区分大小写的;因此将两者转换为小写以消除区分大小写。
答案 1 :(得分:1)
Sub concatenate()
Dim myCell As String
Dim i As Integer
lastRow = Worksheets("yourSheet").Cells(Rows.Count, 4).End(xlUp).Row
For i = lastRow To 1 Step -1
myCell = Worksheets("yourSheet").Cells(i, 4).Value
If Right(myCell, 4) = " XX " Then
'do some stuff to concatenate'
End If
Next i
End Sub