将excel vba应用于整个列而不是单个单元格

嗨,我想申请下面的VBA的整个列AK而不是只是AK1

Sub Tidy_Cell() Range("AK1") = Replace(Range("AK1"), Chr(13), "") For x = 1 To Len(Range("AK1")) If Mid(Range("AK1"), x, 1) = Chr(10) And Mid(Range("AK1"), x + 1, 1) = Chr(10) Then Range("AK1") = Left(Range("AK1"), x) & Mid(Range("AK1"), x + 2) End If Next With Range("A1") .Value = Mid(.Value, 1) .VerticalAlignment = xlTop End With End Sub 

非常感谢您的帮助!

我会把你所有的代码放到一个检查列AK的Loop中

 dim lLastUsed As Long lLastUsed = Cells(1048576, "AK").End(xlUp).Row For i = 1 to lLastused //insert your code here Next i 

记住你定义的每一个点都是Range(“AK1”),你需要把它改成Range(“AK”和i),所以它最终会像这样:

 Sub Tidy_Cell() Dim lLastUsed As Long lLastUsed = Cells(1048576, "AK").End(xlUp).Row For i = 1 to lLastUsed Range("AK" & i) = Replace(Range("AK" & i), Chr(13), "") For x = 1 To Len(Range("AK" & i)) If Mid(Range("AK" & i), x, 1) = Chr(10) And Mid(Range("AK" & i), x + 1, 1) = Chr(10) Then Range("AK" & i) = Left(Range("AK" & i), x) & Mid(Range("AK" & i), x + 2) End If Next x Next i With Range("A1") .Value = Mid(.Value, 1) .VerticalAlignment = xlTop End With End Sub 

希望这可以帮助你