2017-10-20 71 views
0

您好我想下面的VBA適用於整列AK,而不只是AK1運用Excel VBA中,以整列的,而不是單細胞

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 

感謝了很多的幫助!

+0

嘗試記錄在您選擇整列宏和執行此更換(但也許將「A」用「b」或者只是爲了測試)。然後看看你是否可以使用這個創建的代碼來修改你的。 – OpiesDad

回答

2

我把所有的代碼放到一個循環,檢查列AK

dim lLastUsed As Long 
lLastUsed = Cells(1048576, "AK").End(xlUp).Row 
For i = 1 to lLastused 

    //insert your code here 

Next i 

記住,你將它定義爲範圍(「AK1」),你需要將其更改爲量程(「AK」 &的每一個現場我),所以它最終是這樣的:

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 

希望這可以幫助你

+0

非常感謝!完美的工作 – AT555