如何移动excel UsedRange从单元格A1开始它的工作表(即删除UsedRange之外的所有空白行和列)?

时间:2017-12-06 08:54:13

标签: excel vba excel-vba

我是VBA的新手,还没有弄清楚如何选择和删除" non-UsedRange"从一张纸上一次(即将UsedRange转移到单元格A1开始)。

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

我(可能)发现了一个单行(仅)为(仅)一个特定列执行此操作:

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

如何移动excel UsedRange从单元格A1开始工作表(即删除UsedRange之外的所有空白行和列)?

2 个答案:

答案 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")