Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果特定单元格为空,VBA排序移位将删除2个单元格_Vba_Sorting_Shift - Fatal编程技术网

如果特定单元格为空,VBA排序移位将删除2个单元格

如果特定单元格为空,VBA排序移位将删除2个单元格,vba,sorting,shift,Vba,Sorting,Shift,我需要一些关于VBA代码的帮助。如果B列中的单元格为空,我尝试移位删除A列和B列中的2个单元格。我需要重复这个动作10次 我有一个VBA代码,它使用B列中空白处的过滤器来实现这一点。它在小数据集上运行良好,但是,由于我的数据集非常大,操作需要重复10次,因此需要花费大量时间 Sub del() For i = 1 To 10 ActiveSheet.Range("A1").AutoFilter Field:=2, Criteria1:="=" Range("b:b" &

我需要一些关于VBA代码的帮助。如果B列中的单元格为空,我尝试移位删除A列和B列中的2个单元格。我需要重复这个动作10次

我有一个VBA代码,它使用B列中空白处的过滤器来实现这一点。它在小数据集上运行良好,但是,由于我的数据集非常大,操作需要重复10次,因此需要花费大量时间

Sub del()
  For i = 1 To 10
    ActiveSheet.Range("A1").AutoFilter Field:=2, Criteria1:="="
    Range("b:b" & Cells(Rows.Count, "A").End(xlUp).Row).Select
    Selection.SpecialCells(xlCellTypeVisible).Delete Shift:=xlToLeft

    Range("a:a" & Cells(Rows.Count, "A").End(xlUp).Row).Select
    Selection.SpecialCells(xlCellTypeVisible).Delete Shift:=xlToLeft

 Next i

End Sub
我在想,与其过滤,不如: -对列B进行排序,以获得末尾的所有空格 -从第一个空白单元格选择,直到行结束(对于A列和B列) -删除所选内容 -重复此操作10次

我尝试了一些方法,但我无法获得正确的代码

非常感谢您的帮助

谢谢,,
Daniela

您的叙述是关于shift/delete“2列中的2个单元格”,而您的代码看起来好像要删除整个列。此外,您的“代码工作正常”是不可能的,因为
Range(“b:b”和Cells(Rows.Count,“A”).End(xlUp.Row)
也会抛出错误(并且
Range(“A:A”…)
)。请澄清并告诉我们,通过过滤和删除/移位十次,您试图实现的真正目标是什么,也许会有更好的解决方案。您的叙述是关于移位/删除“2列中的2个单元格”,而您的代码看起来像是试图删除整列。此外,您的“代码工作正常”是不可能的,因为
Range(“b:b”和Cells(Rows.Count,“A”).End(xlUp.Row)
也会抛出错误(并且
Range(“A:A”…)
)。请澄清并告诉我们,通过十次过滤和删除/移动,您试图实现的真正目标是什么,也许会有更好的解决方案。