2015-03-13 58 views
-1

我堅持下面的宏,我需要修剪和轉換爲文本格式的相鄰列數據,我需要它在一般格式。修剪和轉換文本爲通用格式與vba

我的數據是J列我正在修剪它在K列副本上粘貼它作爲列J上的特殊值。同時假設數據在5000行之內。如果有人能夠幫助我將它修剪並粘貼到J中直到數據的最後一行,那將是非常棒的。下面是我使用的代碼。謝謝。

Sub TrimPS() 
Range("K2").Activate 
ActiveCell.FormulaR1C1 = "=TRIM(SUBSTITUTE(RC[-1],CHAR(160),CHAR(32)))" 
ActiveWindow.LargeScroll Down:=1 
Range("K5000").Select 
Range(Selection, Selection.End(xlUp)).Select 
Selection.FillDown 
Selection.Copy 
Range("J2").Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
Range("K2").Select 
Range(Selection, Selection.End(xlDown)).Select 
Application.CutCopyMode = False 
Selection.ClearContents 
Range("K2").Select 
End Sub 
+0

什麼是你的代碼的問題? – 2015-03-13 07:24:58

+0

首先它需要5000行,但我希望它根據列J中的數據,當我試圖將它粘貼到J列中的一般格式時,它不會發生。 – 3689 2015-03-13 07:30:48

回答

1
Sub TrimPS() 
    Dim rngLast As Range 

    Set rngLast = Range("J1").Offset(Rows.Count - 1).End(xlUp) 

    With Range("J2", rngLast) 
     .Offset(0, 1).FormulaR1C1 = "=TRIM(SUBSTITUTE(RC[-1],CHAR(160),CHAR(32)))" 
     .Value = .Offset(0, 1).Value 
     .Offset(0, 1).ClearContents 
    End With 

    Set rngLast = Nothing 
End Sub 
+0

謝謝吉姆..這就是我想要的..我對齊與不同的列也一樣.. – 3689 2015-03-16 07:05:07