EXCEL:使用与单元格中的数字匹配的自动填充数据/函数创建/删除行
Posted
技术标签:
【中文标题】EXCEL:使用与单元格中的数字匹配的自动填充数据/函数创建/删除行【英文标题】:EXCEL: Create/delete rows with autofilled data/functions matching to a number in a cell 【发布时间】:2011-04-02 12:38:44 【问题描述】:我的问题是我有一个至少有 2 行的小公式,并且应该能够从另一个单元格扩展到给定的数字。例如。最少 2 行 - 然后将行数编号的单元格设置为 10。然后将在第 1 行和第 2 行之间添加另外 8 行。自动填充数据类似于使用自动填充选项向下拖动时的数据。 同样,当您将数字从 10 设置为 4 时,应删除 6 行。
希望您能看到我的想法,如果不清楚或不满足问题的所有要求,我再次非常抱歉。
【问题讨论】:
【参考方案1】:定义三个命名单元格——比如FirstCell
、LastCell
和HowMany
。确保LastCell
在FirstCell
的正下方。
创建一个Worksheet_Change
处理程序。如果Target
范围是HowMany
单元格,则在FirstCell
和LastCell
之间添加或删除单元格:
If Target.Address = Me.Range("HowMany").Address Then
If Not IsEmpty(Target.Value) Then
If IsNumeric(Target.Value) Then
If Target.Value >= 2 Then
Dim i As Long
Dim rows_before As Long
rows_before = Me.Range("LastCell").Row - Me.Range("FirstCell").Row + 1
If rows_before < Target.Value Then
For i = 1 To Target.Value - rows_before
Me.Range("LastCell").Insert xlShiftDown
Next
ElseIf rows_before > Target.Value Then
Me.Range(Me.Range("LastCell").Offset(-1, 0), Me.Range("LastCell").Offset(-(rows_before - Target.Value), 0)).Delete xlShiftUp
End If
Me.Range(Me.Range("FirstCell"), Me.Range("LastCell")).FillDown
End If
End If
End If
End If
【讨论】:
谢谢! - 我会尝试看看我是否可以学习如何实现这一点,我从未尝试过使用 VB。所以这将是一个挑战 :) - 到目前为止有一个愉快的周末! :)以上是关于EXCEL:使用与单元格中的数字匹配的自动填充数据/函数创建/删除行的主要内容,如果未能解决你的问题,请参考以下文章