我想从包含公式的其他工作表中导入一些列。 我的代码分为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
答案 0 :(得分:0)
您可以简单地使用.Formula
属性:
ws2.Range("B6:Z400").Formula = ws1.range("B4:Z398").Formula
如果不使用.Select
或.Copy .Paste
加上您定义了Worksheets
,那么上面的代码也会更清晰,然后不要将其用于.Copy .Paste
。