簡體   English   中英

復制具有公式的宏單元格

[英]Copy cells with formulas in macro

我有2張紙的Excel電子表格。 在第一張工作表中,我得到了一些值,當我單擊按鈕時,在第二張工作表中發生以下情況: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

插入新的第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按鈕映射到上面的宏。 當我單擊一個按鈕時,它會復制正確列的值,並且還會成功地在“交易”表中復制表格其余部分中的公式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM