【问题标题】:VBA - Insert two new rows based on Userform criteria and also copying the excel formula of a cell rangeVBA - 根据用户表单条件插入两个新行,并复制单元格范围的 excel 公式
【发布时间】:2019-12-21 21:55:42
【问题描述】:

这个问题非常棘手,所以我添加了更多图片以便更好地理解,这是我的 Excel 表,在添加任何内容之前看起来像甘特图。

在此 Excel 工作表中,单元格由 用户表单 填充,单元格值“G3”根据“已预订”值单元格“E4”和“F5”减少

必需输出:如何根据成员之间的“红色”和“蓝色”在A列中添加新的“成员”。重要的是甘特图也应该像其他成员一样添加。

输出应如下图所示:

我正在尝试使用以下代码的行插入方法,但它只是添加了一个新行,但没有满足我的要求。

Sub Insert()
    'Select and find where to insert new row
    ActiveSheet.Range("A:A").Find(What:=Me.cboteam.Value, LookIn:=xlFormulas, Lookat:=xlWhole)
    ActiveCell.EntireRow.Insert
    ActiveCell.Offset(1).EntireRow.Insert Shift:=xlDown,CopyOrigin:=xlFormatFromLeftOrAbove
 End Sub

【问题讨论】:

    标签: excel vba userform


    【解决方案1】:

    试试这个:

    Sub Insert()
        'Select and find where to insert new row
        Dim rngFound As Range: Set rngFound = ActiveSheet.Range("A:A").Find(What:=Me.cboteam.Value, LookIn:=xlFormulas, Lookat:=xlWhole)
        rngFound.Offset(1, 0).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        rngFound.Offset(1, 0).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Debug.Print rngFound.Offset(1, 0).Resize(2, 1).Address
        rngFound.Resize(3, 1).EntireRow.FillDown
     End Sub
    

    【讨论】:

    • 我应该在哪一行添加代码以将 Userform 数据显示到单元格“F7”
    • 我不太明白您的评论,但如果您想将表单控件中的值写入单元格,您应该添加一行 ActiveSheet.Range("F7").Value = ControlName.Value
    • 是的,您提到的评论正是我正在寻找的评论。您的代码完美无缺!!非常感谢。
    猜你喜欢
    • 2022-11-11
    • 2020-10-19
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多