我有一个用户窗体,用于将新数据行输入到同步到Sharepoint列表的动态表中。我只需要VBA代码即可仅删除表中的活动行。
我知道此代码用于删除表中的特定行:
{{1}}
但是我需要删除表中的活动行和仅活动行...
答案 0 :(得分:1)
您可以使用以下方法获取活动表行:
Selection.Row - Selection.ListObject.Range.Row
将其与您拥有的内容一起放置:
Dim ActiveTableRow As Long
ActiveTableRow = Selection.Row - Selection.ListObject.Range.Row
Selection.ListObject.ListRows(ActiveTableRow).Delete
答案 1 :(得分:1)
避免使用Select
和Activate
可能是成为更好的VBA开发人员的第一步-How to avoid using Select in Excel VBA
因此,最简单的方法是:
Sub TestMe()
Cells(ActiveCell.Row, 1).EntireRow.Delete
End Sub
但是,如果您想更进一步,则可以创建更通用的功能:
Sub DeleteRow(rowNumber As Long, _
Optional ws As Worksheet, _
Optional wb As Workbook)
If wb Is Nothing Then
Set wb = ThisWorkbook
End If
If ws Is Nothing Then
Set ws = ActiveSheet
End If
ws.Cells(rowNumber, 1).EntireRow.Delete
End Sub
Sub TestMe()
DeleteRow ActiveCell.Row
End Sub
答案 2 :(得分:0)
这是删除活动行的代码。
x = ActiveCell.Row
Rows(x).Select
Selection.ActiveRow.Delete
这有帮助吗?在表格或表格中工作。