[英]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.