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】:

    定义三个命名单元格——比如FirstCellLastCellHowMany。确保LastCellFirstCell 的正下方。

    创建一个Worksheet_Change 处理程序。如果Target 范围是HowMany 单元格,则在FirstCellLastCell 之间添加或删除单元格:

    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:使用与单元格中的数字匹配的自动填充数据/函数创建/删除行的主要内容,如果未能解决你的问题,请参考以下文章

如何把excel中的空白转换为数字

excel提取单元格中的部分内容

VBA 代码填充 7 个相邻单元格中的索引匹配函数

POI如何自动调整Excel单元格中字体的大小

根据 Excel 中的另一个单元格自动填充单元格数据

excel自动填充数字以获取特殊值