簡體   English   中英

如何復制動態命名范圍內的值?

[英]How to copy the values within a dynamic named range?

我正在工作中進行浪費計算,並且有幾個動態命名范圍,它們的單元格都包含通過公式得出的值。 我需要一個模塊,該模塊將動態命名范圍內的值復制到另一張紙上,而無需復制公式本身,而只是復制單元格包含的值。 我試圖用這個:

Sub Sample()
    Dim wsI As Worksheet, wsO As Worksheet

    Set wsI = ThisWorkbook.Sheets("Sheet1")
    Set wsO = ThisWorkbook.Sheets("Sheet1")

    wsI.Range("Pct_waste").Copy wsO.Range("B4")

End Sub

但這會復制公式,沒有用。 而且我不能只使用絕對引用,因為我需要能夠快速添加新數據。 最終,我打算創建一個宏,該宏將動態命名范圍內的值復制到新的工作表中,然后對這些值進行數字排序並將其繪制在散點圖上。 因此,我需要找到一種方法來復制動態命名范圍中的所有值,而無需復制公式本身。

另外,關於VBA,我還是新手,所以輕松一點!

使用.Resize()方法:

Set wsI = ThisWorkbook.Sheets("Sheet1")
Set wsO = ThisWorkbook.Sheets("Sheet1")

With wsI.Range("Pct_waste")
    wsO.Range("B4").Resize(.Rows.Count, .Columns.Count).Value = .Value
End With

嘗試僅粘貼值:

Sub Sample() 

Dim wsI As Worksheet, wsO As Worksheet

Set wsI = ThisWorkbook.Sheets("Sheet1")
Set wsO = ThisWorkbook.Sheets("Sheet1")

wsI.Range("Pct_waste").Copy 
wsO.Range("B4").PasteSpecial xlPasteValues

End Sub

或類似的東西

Sub test()

Dim r As Excel.Range
Dim i As Integer

Set r = Range("test_range")

For i = 1 To r.Cells.Count
    Range("x" & i).Value = r.Cells(i, 1).Value
Next i

End Sub

或者您可以像這樣在工作表中執行以下靜態公式,例如= index(range_name,rows($ A $ 1:$ A1),1)並填寫下來,還可以使用IFERRROR捕獲錯誤,但這將是靜態的。

暫無
暫無

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

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