Board logo

標題: [發問] 不特定選區的資料互換 [打印本頁]

作者: jesscc    時間: 2019-12-2 10:14     標題: 不特定選區的資料互換

我想在J欄選取一個不特定的區域(譬如J13:J17),然後跟不同欄但同列的E13:E19資料互換。自己寫了一段,但沒作用,能幫忙看一下該如何改嗎?
[attach]31484[/attach]
作者: jcchiang    時間: 2019-12-2 13:15

回復 1# jesscc

試試看
Private Sub CommandButton1_Click()

Set frow = Selection.SpecialCells(xlCellTypeVisible)(1)
Set lrow = Selection.SpecialCells(xlCellTypeLastCell)
rng1 = Range("J" & frow.Row, "J" & lrow.Row)
rng2 = Range("E" & frow.Row, "E" & lrow.Row)

'A = rng1
'rng1 = rng2
'rng2 = A

Range("J" & frow.Row, "J" & lrow.Row) = rng2
Range("E" & frow.Row, "E" & lrow.Row) = rng1

End Sub
作者: jesscc    時間: 2019-12-2 14:25

回復 2# jcchiang
這樣不行,非選取區域的資料也會跟著互換
作者: jcchiang    時間: 2019-12-2 16:39

回復 3# jesscc

再試試
Private Sub CommandButton1_Click()

Set frow = Selection.SpecialCells(xlCellTypeVisible)
lrow = frow.Row + frow.Count - 1
rng1 = Range("J" & frow.Row, "J" & lrow)
rng2 = Range("E" & frow.Row, "E" & lrow)

Range("J" & frow.Row, "J" & lrow) = rng2
Range("E" & frow.Row, "E" & lrow) = rng1

End Sub
作者: hcm19522    時間: 2019-12-2 18:27

https://blog.xuite.net/hcm19522/twblog/588682462
作者: jesscc    時間: 2019-12-2 19:23

回復  jesscc

再試試
Private Sub CommandButton1_Click()

Set frow = Selection.SpecialCells(xlC ...
jcchiang 發表於 2019-12-2 16:39


j大,改用上述寫法,在測試檔裡可以正常運作,但我用在實際的工作檔�媯o生了一個問題:如果只有選取一列(個)儲存格會出現"溢位"的偵錯,您知道這是哪裡有問題嗎?
作者: jcchiang    時間: 2019-12-3 12:47

回復 6# jesscc

沒有看到實際的狀況無法知道原因
但測試過選一列(個)儲存格是可以互換的
作者: 准提部林    時間: 2019-12-5 14:35

Private Sub CommandButton1_Click()
Dim xB As Range, Arr
With Selection
     If .Columns.Count > 1 Or .Column <> 10 Then Exit Sub
     If Intersect(Me.UsedRange, .Cells).Address <> .Address Then Exit Sub
     Set xB = Range(Replace(.Address, "J", "E"))
     Arr = .Value
     .Value = xB.Value
     xB.Value = Arr
End With
End Sub




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)