【问题标题】:Insert worksheet row based on given relative range row index vba根据给定的相对范围行索引vba插入工作表行
【发布时间】:2014-09-21 01:10:00
【问题描述】:

我要做的是使用 VBA 在 Excel 范围内的特定位置插入一行。我扫描范围以找出字符串“Administration”首先出现在哪一行,然后想在上面直接插入一行。下面的代码有效。但它只会在我的 Range 中插入一行,而不是在整个工作表中插入一行,这会弄乱同一个工作表上其他一些表的位置。找出一种选择整行的方法会很好,这样工作表上的所有内容也会重新定位,而不仅仅是范围内的内容。有什么想法吗?谢谢。

Sub insertRow(Name As String)
    Dim Rw, target As Range
    Dim insertRowNum As Integer

    Set target = ActiveSheet.Range("Table")

    'Determine proper insertion row index.  Goal is to insesrt new project right
    'before Administration'

    insertRowNum = -1 'Flag to see if loop finds "Administration" in any of the cells"
    For Each Rw In target.Rows
        If target.Cells(Rw.Row, 1) = "Administration" Then
            insertRowNum = Rw.Row
            Exit For
        End If
    Next

    'Check to see if "Administration" was found'
    If insertRowNum = -1 Then
        insertRowNum = target.Rows.Count
    End If

    'Insert Blank Row
    target.Rows(insertRowNum).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

【问题讨论】:

    标签: vba row cell insertion


    【解决方案1】:

    而不是

    target.Rows(insertRowNum).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    

    试试

    Range("A" & insertRowNum).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    

    【讨论】:

    • 很好,这很有效。还有一个问题。当您执行 Range("A" & insertRowNum) 时,“A”会做什么?
    • @user1707675 "A" 只是列 "A",它可以被 B C D 等替换,因为选择了整行,这并不重要。但是范围需要一个列参数,所以需要有一些东西
    • 哎呀说得太早了。我的 insertRowNum 索引是一个相对地址,它捕获范围内的行号,相对于范围的顶部。因此,如果我的范围不在工作表的顶部,则 insertRowNum 索引将与工作表上的绝对行索引不同。例如,如果工作表顶部有两个空白行,在我的表格开始之前,insertRowNum 可能会被分配为 5,而我真的想在工作表的第 7 行插入。
    • @user1707675 好的,试试这个:target(insertRowNum, 1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    • 我得到了一个未定义的变量错误,CopyOrigin:=xlFormatFromLeftOrAbove,但我刚刚删除了它,它似乎工作正常。那只是我以任何方式录制的宏留下的,所以我从来不知道它实际上做了什么。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多