- 帖子
- 6
- 主題
- 1
- 精華
- 0
- 積分
- 8
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- office2003
- 閱讀權限
- 10
- 性別
- 女
- 註冊時間
- 2018-9-4
- 最後登錄
- 2018-10-22
|
[發問] Excel2003 remove duplicates相容性問題
各位好
目前工作交接時,發現離職同事行情使用VBA紀錄,進而開始摸索
因個人電腦版本需要把office2013的VBA改成office2003的版本
在收取行情時會每小時刪除重複的資料 ,此內容寫在模組中,執行時在指定的32個工作表刪除
在改寫時遇到remove duplicates相容性的問題,
有參考版上的文章嘗試改寫成2003的版本在工作表內可以正常執行,但在模組中有時會跳出錯誤
再度參考網路的資料後 改寫成下面的內容即可在模組中正常執行
但執行時發現除了效率變差外,資料量龐大時還可能會當機QQ
想請問大家對於RemoveDuplicates改寫為2003版可使用的版本時,是否有較好的寫法呢?
謝謝大家!!
原始office2013用法為
------------------------------------------------------------
Sub delete()
For i = 2 To 33
Sheet(i).Range("B4:AG65536").RemoveDuplicates Columns:=Array(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33), Header:=xlNO
Next i
End Sub
------------------------------------------------------------
目前我參考網路資料改寫office2003為
------------------------------------
Sub delete()
For i = 2 To 33
Dim r As Range, Rng As Range
Sheets(i).Select
With Sheets(i).UsedRange
.Columns("B:AG").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Dim g%
Application.ScreenUpdating = False
For g = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row - 1 To ActiveSheet.UsedRange.Row Step -1
If Rows(g).Hidden = True Then
Rows(g).EntireRow.delete
End If
Next
Application.ScreenUpdating = True
End With
Next i
End Sub
------------------------------------------------------------ |
|