0
是否有一种使用Excel VBA的方法,以便任何时候Excel电子表格中位于具有某些内容的行之间的特定行在其所有单元格中清空,较低的行向上复制。即假设第1-10行有内容,我删除第5行的内容,然后第6行变成第5行,第7行变成第6行等到第10行变成第9行并且操作完成。任何建议将不胜感激。自动删除行,并用Excel中的较低行替换Vba
是否有一种使用Excel VBA的方法,以便任何时候Excel电子表格中位于具有某些内容的行之间的特定行在其所有单元格中清空,较低的行向上复制。即假设第1-10行有内容,我删除第5行的内容,然后第6行变成第5行,第7行变成第6行等到第10行变成第9行并且操作完成。任何建议将不胜感激。自动删除行,并用Excel中的较低行替换Vba
所以,你已经做了编辑,并尝试它为您的需要。您应该注意到底部的循环向上移动,Excel电子表格顶部有五条固定线。
Sub Delete_Empty_Lines()
Dim quotes As Integer
Application.ScreenUpdating = False
Dim usedRows As Long
Dim row As Long
'// usedRows = Sheets("Sheet-1").UsedRange.Rows.Count
usedRows = Sheets("Sheet-1").Cells(Rows.Count, 1).End(xlUp).row
For row = usedRows To 5 Step -1
If Sheets("Sheet-1").Cells(row, 1) = "" Then
quotes = MsgBox("Sheet-1 has empty lines - delete this line?", vbYesNo)
Select Case quotes
Case vbYes
Rows(row).EntireRow.Delete
'// Exit Sub
Case vbNo
Exit Sub
End Select
End If
Next
Application.ScreenUpdating = True
End Sub
编辑:代码示例插入线:
Private Sub cmdFillData_Click()
'//--- clean and fill in some data ----------------------------------
Sheets("AreaData").Select
Worksheets("AreaData").Cells.Clear
Range("A1").Select
Range("A1:C1") = Array("Germany", "Berlin", "Brandenburg Gate")
Range("A2:C2") = Array("South Africa", "Cape Town", "Waterfront")
Range("A3:C3") = Array("France", "Paris", "Eiffel Tower")
Range("A4:C4") = Array("Spain", "Madrid", "Plaza Mayor")
Range("A5:C5") = Array("Italy", "Rome", "Palazzo Senatorio")
'//--- search for value -------------------------------------
Columns("A:A").Select
Cells.Find(What:="France", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
'//--- Insert row above active cell
ActiveCell.EntireRow.Insert
ActiveCell.Select
'//--- Insert row below active cell
'ActiveCell.Offset(1).EntireRow.Insert
'//--- Insert column to the left of the active cell
'ActiveCell.EntireColumn.Insert
'//--- Insert column to the right of the active cell
'ActiveCell.EntireColumn.Offset(0, 1).Insert
End Sub
@ help-info.de所以基本上行(行).EntireRow.Delete做这项工作?什么确保将较高索引行复制到较低索引行? – IntegrateThis
这是旧东西,是行(行).EntireRow.Delete 完成这项工作。复印作业与手动完成相同。 –
在两行之间添加行是否有类似的功能?非常感谢。 – IntegrateThis