2017-08-02 85 views
0

我有一个很棒的Excel工作表,我将信息从具有表格的新工作表中检索出来。问题是我不知道表中的行数,因为数据是动态的。之后我还必须打印表格,但它会复制原始数据中的空白行。所以我所做的是,我在下面创建了这个代码来过滤表并隐藏所有空行。它完全符合我的要求 - 隐藏空行。但每当表格中的数据需要刷新(复制和粘贴)时,excel会询问我是否要删除整个表格行。如果我点击是,它会刷新数据,但如果我点击否,它会继续添加新的数据,原来在表中.--这不是我想要的。excel - “删除整行”对话框

LastRow = Worksheets("KYC Feedback Page 2").Range("A65536").End(xlUp).Row 
LastColumn = Replace(Cells(1, 
ActiveSheet.Range("XFD1").End(xlToLeft).Column).Address(False, False), "1", 
"") 
On Error Resume Next 
With Worksheets("KYC Feedback Page 2").Range("A1:" & LastColumn & LastRow) 
.AutoFilter Field:=1, Criteria1:="<>", Operator:=xlFilterValues 
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.delete 
End With 
On Error Resume Next 
Sheet1.AutoFilterMode = False 
+0

如果有任何建议,我如何删除表中的空行? – cookiemonster

+0

查看https://stackoverflow.com/questions/9379673/excel-vba-delete-empty-rows – dwirony

回答

1

我不知道我是否正确理解了你,但试试这段代码。您可以实现您的请求,我认为在您的代码中添加Application.DisplayAlerts

Application.DisplayAlerts = False 

LastRow = Worksheets("KYC Feedback Page 2").Range("A65536").End(xlUp).Row 
LastColumn = Replace(Cells(1, 
ActiveSheet.Range("XFD1").End(xlToLeft).Column).Address(False, False), "1", 
"") 
On Error Resume Next 
With Worksheets("KYC Feedback Page 2").Range("A1:" & LastColumn & LastRow) 
.AutoFilter Field:=1, Criteria1:="<>", Operator:=xlFilterValues 
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.delete 
End With 
On Error Resume Next 
Sheet1.AutoFilterMode = False 

Application.DisplayAlerts = True 
+0

它仍然显示对话框 – cookiemonster