標題:
[發問]
在一筆資料裡面 去掉0 & 空格 然後重新排序
[打印本頁]
作者:
bomber1224
時間:
2018-12-10 22:06
標題:
在一筆資料裡面 去掉0 & 空格 然後重新排序
請問一下,需要把資料裡面的0與空格去除,然後從小到大排序
自己寫了一個VBA程式,但是發覺資料是小筆數時沒有問題,可以去掉0跟空格 然後從小到大排好
但是筆數超過一萬筆之後,會發現那些資料只有某部分有部在去掉0跟重新排序,剩下的則會補上 #N/A
不知道是程式哪個部分出現問題了,
請問是否能幫忙修改程式碼,謝謝,感恩 :) :)
[attach]29797[/attach]
程式碼:
Sub 排序()
Application.ScreenUpdating = False
Dim myarr() As Variant
a = Application.WorksheetFunction.CountA(Range("B2:B100000"))
ReDim myarr(a) As Variant
Dim Rng As Range
k = 0
For i = 2 To Range("A2").End(xlDown).Row
If Cells(i, "B") <> 0 And Cells(i, "B") <> "" Then
myarr(k) = Cells(i, "B")
k = k + 1
End If
Next
[B2:B1048576].Clear
Set Rng = Range("B2").Resize(k)
Rng.Value = Application.Transpose(myarr)
Rng.Sort key1:=Rng(1), order1:=xlAscending, Header:=xlNo
Application.ScreenUpdating = True
End Sub
作者:
准提部林
時間:
2018-12-11 10:57
Sub 排序()
With Range([B2], Cells(Rows.Count, 2).End(xlUp))
.Replace "0", "", Lookat:=xlWhole
.Sort key1:=.Item(1), order1:=xlAscending, Header:=xlNo
End With
End Sub
作者:
bomber1224
時間:
2018-12-11 20:32
回復
2#
准提部林
謝謝 准版主的回覆
剛剛測試過後,程式效率非常高,程式碼非常簡潔 感恩
另外有問題想請教 : 程式碼裡面有 Lookat:=xlWhole ==> 這個是做甚麼用的呢?
謝謝
作者:
准提部林
時間:
2018-12-12 10:15
回復
3#
bomber1224
Lookat:=xlWhole
完全比對
102
0
2300
只會將0取代為空, 102及2300中的0不取代
Lookat:=xlPart
部份比對
102 >> 12
0 >> 空白
2300 >> 23
作者:
bomber1224
時間:
2018-12-12 20:16
回復
4#
准提部林
原來如此阿!! 謝謝你的回答, 感恩
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)