
答案1
這種行為是設計使然;當您選擇不連續的儲存格並複製它們時,Excel 不會記住它們的原始位置。
解決方法:
- 一次將一個值複製到目標儲存格。
- 首先複製整列,然後對其進行過濾以排除所有帶有“Banana”的單元格,並刪除每隔一行的內容。
- 使用公式檢查「Banana」是否位於另一張工作表的相同儲存格中,只有在存在時才傳回值。這個公式應該有效:
=IF(B2="Banana",B2,"")
使用巨集檢視 B 列中的所有儲存格,如果顯示“Banana”,則將值複製到 D 列 Sub BananaCopy() Const csSrc As String = "B" Const csTgt As String = "D" Const csFruit As String = “香蕉”
Dim rngFruits As Range, rngCell As Range Set rngFruits = Range(csSrc & 1, csSrc & Rows.Count) For Each rngCell In rngFruits If rngCell.Value = csFruit Then Range(csTgt & rngCell.Row).Value = csFruit End If Next rngCell
結束子