VBA VLOOKUP复制/粘贴

VBA VLOOKUP复制/粘贴,vba,vlookup,Vba,Vlookup,我有一个VBA代码,可以复制和粘贴页面,并正确地复制所有内容,除了任何有vlookup的单元格。我不知道问题出在哪里,也不知道是否有延迟时间。任何想法都会有帮助 Dim thisSheet As Worksheet Set thisSheet = Application.ActiveSheet Dim templateSheet As Worksheet Set templateSheet = Worksheets("Template ") Dim baseSheet As Workshee

我有一个VBA代码,可以复制和粘贴页面,并正确地复制所有内容,除了任何有vlookup的单元格。我不知道问题出在哪里,也不知道是否有延迟时间。任何想法都会有帮助

Dim thisSheet As Worksheet
Set thisSheet = Application.ActiveSheet

Dim templateSheet As Worksheet
Set templateSheet = Worksheets("Template ")

Dim baseSheet As Worksheet
Set baseSheet = Worksheets("Base")

Dim wrkBook As Workbook
Set wrkBook = ActiveSheet.Parent

Dim wrkSheet As Worksheet

Dim sNewSheetName As String
Dim nRow As Integer

Application.ScreenUpdating = False

Dim rRunRange As Range
Set rRunRange = Range("Cohorts_to_Run")

Dim n As Integer

For nRow = 1 To rRunRange.Rows.Count

    sNewSheetName = rRunRange.Cells(nRow, 2).Value

    Set wrkSheet = Worksheets.Add(, Worksheets(Worksheets.Count))
    wrkSheet.Name = sNewSheetName

    'Set parameters to pickup data....
    Dim zZoom As Double
    zZoom = ActiveWindow.Zoom

    templateSheet.Activate
    templateSheet.Range(baseSheet.Range("TEMPLATE_COPY_RANGE").Value).Copy

    wrkSheet.Activate
    wrkSheet.PasteSpecial xlPasteColumnWidths
    wrkSheet.Paste
    ActiveWindow.Zoom = baseSheet.Range("ZOOM_LEVEL").Value

    wrkSheet.Range("A1").RowHeight = 10

    Application.CutCopyMode = False


    wrkSheet.Range("B2").Value = Range("Cohorts_to_Run").Cells(nRow, 1).Value

    Dim sTitleRangeName As String
    sTitleRangeName = sNewSheetName & "_Title"

    wrkSheet.Range(baseSheet.Range("TEMPLATE_COPY_RANGE").Value).Select
    Selection.Copy
    wrkSheet.Range(baseSheet.Range("TEMPLATE_COPY_RANGE").Value).PasteSpecial         
    xlPasteValuesAndNumberFormats
 Next nRow

我想你的困惑是最后一行只粘贴值,删除任何公式

wrkSheet.Range(baseSheet.Range("TEMPLATE_COPY_RANGE").Value).PasteSpecial xlPasteValuesAndNumberFormats
为什么不直接粘贴呢
xlpastevalues和numberformats
每次都会删除公式。这就是重点

Dim copyRange as Range, pasteRange as Range
Set copyRange = wrkSheet.Range(baseSheet.Range("TEMPLATE_COPY_RANGE").Value)
Set pasteRange = wrkSheet.Range(baseSheet.Range("TEMPLATE_COPY_RANGE").Value)
copyRange.Copy pasteRange

您的
wrkSheet.Range(baseSheet.Range(“TEMPLATE\u COPY\u Range”).Value)
语法令人困惑。您的命名区域中是否有另一个区域的名称
TEMPLATE\u COPY\u range

您需要发布您的可疑代码,以便我们了解问题所在。