首页 文章

使用宏中的公式复制单元格

提问于
浏览
0

我有一张excel电子表格,有2张 . 在第一张表中,我得到了一些值,当我点击一个按钮然后在第二张表中发生以下情况1.在顶部插入一个新行2.复制第一张表中的数据 .

但是,在复制的单元格后面有一些带有公式的列,我不知道在插入新行后如何在vbscript中复制这些公式 .

Sub Trade1()
    Sheets("Trades").Select
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A2:R2").Select
    Selection.ClearContents
    Range("A2").Select
    Dim fromRange As Range, toRange As Range
    Set fromRange = Sheets("Enter Trade").Range("B2:B20")
    Set toRange = Sheets("Trades").Range("A2")
    fromRange.Copy
    toRange.PasteSpecial Paste:=xlPasteValues, Transpose:=True
End Sub

1 回答

  • 1

    在插入新的第2行(以便它的内容现在在第3行)之后,我会将第3行复制回第2行(基本上复制),然后使用要从工作表中移动的数据覆盖值'Enter贸易'范围B2:B20,如下:

    Sub Trade_Button_Click()
    
        Dim btn As Button
        Dim wsEntry As Worksheet
        Dim wsTrades As Worksheet
    
        Set wsEntry = Sheets("Enter Trade")
        Set wsTrades = Sheets("Trades")
        Set btn = wsEntry.Buttons(Application.Caller)
    
        wsTrades.Rows(2).Insert
        wsTrades.Rows(3).Copy wsTrades.Rows(2)
        With Intersect(wsEntry.Range("A2", wsEntry.Cells(Rows.Count, "A").End(xlUp)).EntireRow, wsEntry.Columns(btn.TopLeftCell.Column))
            wsTrades.Range("A2").Resize(, .Rows.Count).Value = Application.Transpose(.Value)
        End With
    
        Set wsTrades = Nothing
        Set wsEntry = Nothing
    
    End Sub
    

    我在此处上传了您提供的工作簿的修改版本:https://docs.google.com/file/d/0Bz-nM5djZBWYa0R5T2hXMERabjg/edit?usp=sharing

    在修改后的版本中,我已将所有Enter按钮映射到上面的宏 . 当我单击一个按钮时,它会复制正确列的值,并且还会成功地在表'交易'中的表的其余部分复制公式 .

相关问题