h**h 发帖数: 7 | 1 2000 行数据,如果要多次删除间隔不一致的20行数据,例如要删除 10-29行,100-119
行,240- 259行等,请问有无简捷方法?谢谢。 | h**h 发帖数: 7 | 2 补充一下: excel 2003, 已知每段数据的起始行数,要删除此行及其以下19行数据。
119
【在 h**h 的大作中提到】 : 2000 行数据,如果要多次删除间隔不一致的20行数据,例如要删除 10-29行,100-119 : 行,240- 259行等,请问有无简捷方法?谢谢。
| B*******e 发帖数: 3882 | 3 use VBA
【在 h**h 的大作中提到】 : 补充一下: excel 2003, 已知每段数据的起始行数,要删除此行及其以下19行数据。 : : 119
| p***r 发帖数: 4859 | 4 Sub DelExcelRow(nRow As Long)
Rows(nRow & ":" & nRow).Select
Selection.Delete Shift:=xlUp
End Sub
Sub test()
DelExcelRow 4
End Sub
119
【在 h**h 的大作中提到】 : 2000 行数据,如果要多次删除间隔不一致的20行数据,例如要删除 10-29行,100-119 : 行,240- 259行等,请问有无简捷方法?谢谢。
| f*****y 发帖数: 124 | 5 如果你会自己录制宏,录个空的宏,把下面代码加进去。
Sub DelRows()
'
' Delete Rows in Excel , Macro
'
'
Dim InitialRow(), nRow
InitialRow = Array(10, 100, 240) 'Edit or Add here
For Each nRow In InitialRow
Rows(nRow & ":" & nRow + 19).Select
Selection.Delete Shift:=xlUp
Next
End Sub
【在 h**h 的大作中提到】 : 补充一下: excel 2003, 已知每段数据的起始行数,要删除此行及其以下19行数据。 : : 119
| h**h 发帖数: 7 | 6 Got it. Thanks a lot.
【在 f*****y 的大作中提到】 : 如果你会自己录制宏,录个空的宏,把下面代码加进去。 : Sub DelRows() : ' : ' Delete Rows in Excel , Macro : ' : ' : Dim InitialRow(), nRow : InitialRow = Array(10, 100, 240) 'Edit or Add here : For Each nRow In InitialRow : Rows(nRow & ":" & nRow + 19).Select
| B*******e 发帖数: 3882 | 7 You have to consider that the row numbers will change after you delete the r
ows in the first round of the loop.
Here is my code:
Sub DelRows()
'
' Delete Rows in Excel , Macro
'
'
Dim InitialRow(), nRow
Dim DelRange As Range
InitialRow = Array(10, 100, 140) 'Edit or Add here
Set DelRange = Rows(InitialRow(0))
For Each nRow In InitialRow
Set DelRange = Application.Union(DelRange, Range(Rows(nRow), Rows(nR
ow + 19)))
Next
DelRange.Select
Selection.Dele
【在 f*****y 的大作中提到】 : 如果你会自己录制宏,录个空的宏,把下面代码加进去。 : Sub DelRows() : ' : ' Delete Rows in Excel , Macro : ' : ' : Dim InitialRow(), nRow : InitialRow = Array(10, 100, 240) 'Edit or Add here : For Each nRow In InitialRow : Rows(nRow & ":" & nRow + 19).Select
| h**h 发帖数: 7 | 8 运行了这个代码.从后向前删除。其中 InitialRow = Array(240,100,10)。结果显示出
错信息:Method 'Rows' of object'_ Global' failed. Debug 发现 下列代码出错:
Set DelRange = Rows(InitialRow(0))。不知如何解决?谢谢。
r
【在 B*******e 的大作中提到】 : You have to consider that the row numbers will change after you delete the r : ows in the first round of the loop. : Here is my code: : Sub DelRows() : ' : ' Delete Rows in Excel , Macro : ' : ' : Dim InitialRow(), nRow : Dim DelRange As Range
| h**h 发帖数: 7 | 9 运行这段代码出错:Rows(nRow & ":" & nRow + 19).Select。从后向前删除数据。请
问如何解决?
【在 f*****y 的大作中提到】 : 如果你会自己录制宏,录个空的宏,把下面代码加进去。 : Sub DelRows() : ' : ' Delete Rows in Excel , Macro : ' : ' : Dim InitialRow(), nRow : InitialRow = Array(10, 100, 240) 'Edit or Add here : For Each nRow In InitialRow : Rows(nRow & ":" & nRow + 19).Select
| B*******e 发帖数: 3882 | 10 你在 Rows 前面加上 ActiveSheet. 试试。也就是改成(Fishboy 的code 应该也是这个
问题):
Sub DelRows()
'
' Delete Rows in Excel , Macro
Dim InitialRow(), nRow
Dim DelRange As Range
InitialRow = Array(240, 100, 10) 'Edit or Add here
Set DelRange = ActiveSheet.Rows(InitialRow(0))
For Each nRow In InitialRow
Set DelRange = Union(DelRange, Range(ActiveSheet.Rows(nRow), ActiveS
heet.Rows(nRow + 19)))
Next
DelRange.Select
Selection.Delete Shift:=xlUp
End Sub
【在 h**h 的大作中提到】 : 运行了这个代码.从后向前删除。其中 InitialRow = Array(240,100,10)。结果显示出 : 错信息:Method 'Rows' of object'_ Global' failed. Debug 发现 下列代码出错: : Set DelRange = Rows(InitialRow(0))。不知如何解决?谢谢。 : : r
| h**h 发帖数: 7 | 11 It works. Thanks a lot.
这个
【在 B*******e 的大作中提到】 : 你在 Rows 前面加上 ActiveSheet. 试试。也就是改成(Fishboy 的code 应该也是这个 : 问题): : Sub DelRows() : ' : ' Delete Rows in Excel , Macro : Dim InitialRow(), nRow : Dim DelRange As Range : InitialRow = Array(240, 100, 10) 'Edit or Add here : Set DelRange = ActiveSheet.Rows(InitialRow(0)) : For Each nRow In InitialRow
|
|