从其他工作表导入包含其公式的行

时间:2015-09-01 11:19:38

标签: excel vba excel-vba

我想从包含公式的其他工作表中导入一些列。 我的代码分为4个步骤: *清除所有行 *过滤线 *复制这些行 *然后将它们粘贴到另一张表中

有人可以告诉我如何修改下面的代码以使用公式粘贴这些列:

Public Sub refresh()
'
' refresh Macro
'
' Touche de raccourci du clavier: Ctrl+y
'
Dim ws1 As Worksheet, ws2 As Worksheet, lr1 As Long, lRow As Long

    Set ws1 = ThisWorkbook.Worksheets("Scénarios de menace")
    Set ws2 = ThisWorkbook.Worksheets("Analyse de risque")
    Application.Calculation = xlCalculationAutomatic

    ws2.Range("B6:AP" & ws2.Cells(ws2.Rows.Count, 2).End(xlUp).Row).Clear
    lr1 = ws1.Cells(ws1.Rows.Count, 2).End(xlUp).Row
    Sheets("Scénarios de menace").Select
    Range("B4:Z398").Select
    Selection.Copy
    Sheets("Analyse de risque").Select
    Range("B6:Z400").Select
    ActiveSheet.Paste


    ws1.Range("A1:A" & lr1).AutoFilter Field:=1, Criteria1:="X"
    ws1.Range("B3:AP" & lr1).SpecialCells(xlCellTypeVisible).Copy

    ws2.Range("B6").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    ws1.Range("A6:A" & lr1).AutoFilter
    ws2.Activate: ws2.Cells(1, 1).Activate




End Sub

1 个答案:

答案 0 :(得分:0)

您可以简单地使用.Formula属性:

ws2.Range("B6:Z400").Formula = ws1.range("B4:Z398").Formula

如果不使用.Select.Copy .Paste加上您定义了Worksheets,那么上面的代码也会更清晰,然后不要将其用于.Copy .Paste