我是VBA的新手,还没有弄清楚如何选择和删除" non-UsedRange"从一张纸上一次(即将UsedRange转移到单元格A1开始)。
换句话说,我需要一个动态解决方案,将可变大小的UsedRange从其变量位置移动到其工作表的最左上方(即UsededRange左侧/顶部的所有空列/行应该消失)
我(可能)发现了一个单行(仅)为(仅)一个特定列执行此操作:
ActiveSheet.Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
如何移动excel UsedRange从单元格A1开始工作表(即删除UsedRange之外的所有空白行和列)?
答案 0 :(得分:3)
只要在空白时删除第1行和第A列。
with worksheets("sheet1")
do while not cbool(application.counta(.rows(1).cells))
.rows(1).entirerow.delete
loop
do while not cbool(application.counta(.columns(1).cells))
.columns(1).entirecolumn.delete
loop
end with
答案 1 :(得分:2)
Cut >> Paste
:
ActiveSheet.UsedRange.Cut
ActiveSheet.Paste Range("A1")
或者,正如@JohnyL在评论中建议的那样,使用简短版本:
ActiveSheet.UsedRange.Cut Range("A1")