如何移动一个Excel的UsedRange开始在单元格A1其工作表(即删除所有空白的行和UsedRange外的列)?

我是VBA的新手,还没有弄清楚如何从一张纸上一次select和删除“非使用范围”(即将UsedRange从单元格A1开始)。

换句话说,我需要一个dynamic的解决scheme,将可变大小的UsedRange从其variables位置移动到其工作表的最左上方(即,UsededRange左侧/顶部的所有空列/行都应该消失)。

我(可能)发现了一行(仅)行(仅)一个特定的列:

ActiveSheet.Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete 

如何移动一个Excel的UsedRange开始在单元格A1其工作表(即删除所有空白的行和UsedRange外的列)?

怎么样Cut >> Paste

 ActiveSheet.UsedRange.Cut ActiveSheet.Paste Range("A1") 

或者,正如@JohnyL在评论中build议的那样,使用简短版本:

 ActiveSheet.UsedRange.Cut Range("A1") 

只要保持删除行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