![](/img/trans.png)
[英]VBA to Copy data from one workbook to another workbook/worksheet not working
[英]VBA - Copy filtered data values from one workbook to another
我將大量過濾數據(僅可見數據和值)從一個工作簿復制到另一個工作簿,但該過程非常緩慢。 我想嘗試繞過剪貼板,看看這是否能提高速度,但我不斷收到錯誤Object does not support this property or method
。 這是失敗的代碼:
ActiveSheet.SpecialCells(xlCellTypeVisible).Copy _
Destination:=Windows("Some Report").Worksheets( _
"Some Sheet").Range("A1").Values
我嘗試了不同的變體,但收到相同的錯誤。
只是將 cell.value 設置為彼此相等怎么樣? 這個小片段假設您要將單元格復制到同一個目標單元格中,因此如果您不這樣做,則必須對此進行調整。
Private Sub worksheet_selectionchange(ByVal Target As Range)
Dim lastRow As Integer
Dim lastCol As Integer
Dim wb1 As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set wb1 = ThisWorkbook
Set ws1 = wb1.Sheets(1)
Set ws2 = wb1.Sheets(2)
lastRow = ws1.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
lastCol = ws1.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Column
For i = 1 To lastRow: For j = 1 To lastCol
If ws1.Cells(i, j).Value > 5 And Not ws1.Cells(i, j).Hidden Then
ws2.Cells(i, j).Value = ws1.Cells(i, j).Value
End If
Next: Next
End Sub
不幸的是,沒有看到您的其他代碼,我無法證明其他任何內容,但這是我所知道的復制和粘貼的唯一替代方法。
我在沒有實際使用 SpecialCells(xlCellTypeVisible) 方法的情況下完成了此操作,它可以完美地復制和粘貼。 我首先用數組過濾數據,然后我只使用 Worksheets("Sheet1").Range("A1:" & last column & last row).Copy destination:=Worksheets("Sheet2").Range("E5 ") 方法,它在 Office 2010 上工作得很好。我確實研究了 SpecialCells(xlCellTypeVisible) 方法,但從來沒有必要。
也許如果你把 UsedRange.SpecialCells(xlCellTypeVisible).Copy 它會起作用嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.