簡體   English   中英

VBA Excel僅將表值復制到另一張表

[英]VBA Excel Copy Table Values only to another sheet

我正在嘗試僅將值從表復制到其他工作表,但是下面的代碼僅復制公式,從而丟失了引用。 我嘗試了其他解決方案,例如將.Value添加到.DataBodyRange.Copy Cells(i,1),但是沒有用。

謝謝你的幫助

Sub loadData()
Application.AutoCorrect.AutoFillFormulasInLists = False
Dim wsh As Worksheet, i&
Application.ScreenUpdating = 0
With ActiveSheet.ListObjects(1)
    If ActiveSheet.FilterMode Then .Range.AutoFilter
    .DataBodyRange.Delete
    i = 4
    For Each wsh In ThisWorkbook.Worksheets
        If wsh.Name <> "Template"  Then
            With wsh.ListObjects(4)
                .DataBodyRange.Copy Cells(i, 1)
                i = i + .ListRows.Count
            End With
        End If
    Next wsh
    .Range.AutoFilter Field:=5
End With
Application.ScreenUpdating = 1
End Sub    `

這個問題可能對您有幫助。 使用pastespecial粘貼值時,請嘗試更改格式(值或公式)。

您已經在使用循環來完成檢查。 您應該使用循環來完成工作,而不必擔心使用剪貼板進行復制和粘貼。 我可以理解使用復制和粘貼,特別是如果您不了解循環,但您顯然可以理解。

您可以進行另一個循環,一次設置一個單元格的值。

LastCol = Sheets("Sheet1").Cells(1, Columns.count).End(xlToLeft).Column   'Get last column of row with data

For col = 1 To LastCol
    Sheets("Sheet2").Cells(i, col).Value = Sheets("Sheet1").Cells(i, col).Value
Next col

這不是一個完整的解決方案,但是如果您將此代碼插入嘗試復制和粘貼的代碼中,則應該很好地了解如何完成此操作。 再一次,我避免使用復制和粘貼宏,這僅僅是因為在VBA中只編寫三行或四行循環比記錄宏,然后編輯,清理,修改和調試它要快。 “記錄宏”的工作看起來似乎很少,但是以我的經驗,代碼更快,更准確。 您確切地知道發生了什么,而不是某些您可能不想詢問並且也不知道它們在做什么的參數。

暫無
暫無

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

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