excel - “删除整行”对话框

时间:2017-08-02 17:16:05

标签: vba excel-vba 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

1 个答案:

答案 0 :(得分: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