Redian新闻
>
求助:excel 删除行数据问题
avatar
求助:excel 删除行数据问题# Software - 软件世界
h*h
1
2000 行数据,如果要多次删除间隔不一致的20行数据,例如要删除 10-29行,100-119
行,240- 259行等,请问有无简捷方法?谢谢。
avatar
h*h
2
补充一下: excel 2003, 已知每段数据的起始行数,要删除此行及其以下19行数据。

119

【在 h**h 的大作中提到】
: 2000 行数据,如果要多次删除间隔不一致的20行数据,例如要删除 10-29行,100-119
: 行,240- 259行等,请问有无简捷方法?谢谢。

avatar
B*e
3
use VBA

【在 h**h 的大作中提到】
: 补充一下: excel 2003, 已知每段数据的起始行数,要删除此行及其以下19行数据。
:
: 119

avatar
p*r
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行等,请问有无简捷方法?谢谢。

avatar
f*y
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

avatar
h*h
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

avatar
B*e
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

avatar
h*h
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

avatar
h*h
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

avatar
B*e
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

avatar
h*h
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

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。