Excel 宏:如果某列每行最后一个字符是"something",那么
Excel Macro: If the final characters in each row of a column is "something", then
如果其中一个单元格满足特定条件,我将尝试连接两个单元格。
具体来说:如果 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
非常感谢任何帮助。
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
这是添加了一些错误控制的反向循环。
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中的直接字符串比较一般是区分大小写的;因此将两者都转换为小写以消除区分大小写。
如果其中一个单元格满足特定条件,我将尝试连接两个单元格。
具体来说:如果 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
非常感谢任何帮助。
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
这是添加了一些错误控制的反向循环。
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中的直接字符串比较一般是区分大小写的;因此将两者都转换为小写以消除区分大小写。