簡體   English   中英

唯一值范圍列表

[英]Unique Values range list

我正在使用以下代碼從另一張工作表中提取唯一值並將其粘貼到另一張工作表中。 該代碼運行非常快,這很棒。 但是,我無法弄清楚如何僅將數據粘貼為值,也不能復制原始格式。 我知道您需要將.PasteSpecial xlValues設置為特定范圍,但是當我嘗試這樣做時,出現錯誤1004。

任何建議將不勝感激。 謝謝!

Option Explicit

Sub Uniquevalues()
Dim lastrow As Long

Dim wk As Worksheet
Dim wk1 As Worksheet


Set wk = Sheets("X")
Set wk1 = Sheets("Y")


lastrow = Cells(Rows.Count, "B").End(xlUp).Row

    wk.Range("B3:B" & lastrow).AdvancedFilter _
    Action:=xlFilterCopy, _
    CopyToRange:=wk1.Range("c4"), _  ' tried to set afer ("c4") .PasteSpecial xlValues, but it doesn't  work
    Unique:=True
    'wk1.Range("c4").PasteSpecial xlValues - tried like this as well and it doesn't work
End Sub

這就是我擺脫復制格式單元格的方式:

Sub format()

Dim wk2 As Worksheet
Dim lastrow1 As Long

Set wk2 = Sheets("Y")

lastrow1 = wk2.Cells(Rows.Count, "C").End(xlUp).Row
wk2.Range("c4:c" & lastrow1).Select
With Selection
Selection.NumberFormat = "General"
.Value = .Value
.ClearFormats

End With

End Sub

沒有您的數據,我無法測試,但可以嘗試以下方法:

Option Explicit

Sub Uniquevalues()

    Dim wk As Worksheet, wk1 As Worksheet, lastrow As Long
    Set wk = Sheets("X")
    Set wk1 = Sheets("Y")

    lastrow = wk.Cells(Rows.Count, "B").End(xlUp).Row
    wk.Range("B3:B" & lastrow).AdvancedFilter xlFilterCopy, , wk1.Range("c4"), True

End Sub

請參閱: Range.AdvancedFilter方法 (Excel)

暫無
暫無

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

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