2016-07-22 5 views
0

私は必要なコードを書いています。私が抱えている唯一の問題は、空行を削除し、forループの次の反復の前に残りのデータをシフトすることです。もし誰かが提案を持っていれば、すべての耳。この背後にある理由は、重複が削除されると、空の行がその場所に残され、結果としてnumrowを計算する際にcurrentregionの値が変化するということです。ループ内で調整されたデータをシフトする

Option Explicit 
Public Sub dup() 
Dim i As Integer 
Dim updater As Worksheet 
Dim LastRow As Range 
Dim LastColumn As Long 
Dim startcell As Range 
Dim numrow As Long 
Dim rcell As String 
Dim LastCell As Range 
Set updater = Worksheets("DbVisualizer Personal") 

'----------------------------------------------------- 
numrow = updater.Range("A4").CurrentRegion.rows.Count 
For i = 4 To numrow 
    rcell = updater.Cells(i, 30) 
    Set startcell = updater.Cells(i, 1) 
    'Set LastRow = startcell.Offset(1, 0) 
    Set LastCell = updater.Cells(i + 10, 35) 
    If rcell = "Y" Then 
     Else 
     updater.Range(startcell.Address, LastCell.Address).RemoveDuplicates Columns:=Array(7, 17), Header:=xlNo 
      End If 
Next i 

End Sub 
+0

'SpecialCells(xlCellTypeBlanks)'を使って空白を見つけて削除してください。 – cyboashu

答えて

0

それは自動的に一番上に下に空白と、すべてのデータを移動しますので、私は、ソート機能を使用してデータをソートすることをお勧めしたいです。

関連する問題