Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2009|回复: 2

[已解决]C欄的任一單元格作變更對象,B欄與D欄的單元格也作對應的變更

[复制链接]
发表于 2017-5-27 17:46 | 显示全部楼层 |阅读模式
本帖最后由 ioi_chan 于 2017-5-27 18:39 编辑

C欄的任一格自動互換後,B欄與D欄也一起作相應的位置互換,請問各位老師這個B欄與D欄的VBA要怎樣寫,

再次感謝各位老師的幫助!謝謝!

最佳答案
2017-5-27 18:25
本帖最后由 france723 于 2017-5-27 18:27 编辑
  1. Dim Ad
  2. Dim ada
  3. Dim adb
  4. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  5. Application.EnableEvents = False
  6. If Target.Column > 26 Or Target.Count > 10 Then Exit Sub
  7. Ad = Target
  8. ada = ActiveCell.Offset(0, -1)
  9. adb = ActiveCell.Offset(0, 1)
  10. Application.EnableEvents = True
  11. End Sub
  12. Private Sub Worksheet_Change(ByVal Target As Range)
  13. If Target.Column > 26 Or Target.Count > 10 Then Exit Sub
  14. Application.EnableEvents = False
  15. Dim y, ar, i
  16. y = Range("C65536").End(3).Row
  17. ar = Range("a1:d" & y)
  18.      For i = 1 To UBound(ar)
  19.          If i <> Target.Row Then
  20.              If Target = ar(i, 3) Then
  21.                  Cells(i, 3) = Ad
  22.                  Cells(i, 2) = ada
  23.                  Cells(i, 4) = adb
  24.                  Target.Offset(0, -1) = ar(i, 2)
  25.                  Target.Offset(0, 1) = ar(i, 4)
  26.              End If
  27.          End If
  28.      Next i
  29. Application.EnableEvents = True
  30. End Sub
复制代码
你修改我之前的代码,还是有点小问题,也帮你改过来了。

test.zip

40.5 KB, 下载次数: 3

发表于 2017-5-27 18:25 | 显示全部楼层    本楼为最佳答案   
本帖最后由 france723 于 2017-5-27 18:27 编辑
  1. Dim Ad
  2. Dim ada
  3. Dim adb
  4. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  5. Application.EnableEvents = False
  6. If Target.Column > 26 Or Target.Count > 10 Then Exit Sub
  7. Ad = Target
  8. ada = ActiveCell.Offset(0, -1)
  9. adb = ActiveCell.Offset(0, 1)
  10. Application.EnableEvents = True
  11. End Sub
  12. Private Sub Worksheet_Change(ByVal Target As Range)
  13. If Target.Column > 26 Or Target.Count > 10 Then Exit Sub
  14. Application.EnableEvents = False
  15. Dim y, ar, i
  16. y = Range("C65536").End(3).Row
  17. ar = Range("a1:d" & y)
  18.      For i = 1 To UBound(ar)
  19.          If i <> Target.Row Then
  20.              If Target = ar(i, 3) Then
  21.                  Cells(i, 3) = Ad
  22.                  Cells(i, 2) = ada
  23.                  Cells(i, 4) = adb
  24.                  Target.Offset(0, -1) = ar(i, 2)
  25.                  Target.Offset(0, 1) = ar(i, 4)
  26.              End If
  27.          End If
  28.      Next i
  29. Application.EnableEvents = True
  30. End Sub
复制代码
你修改我之前的代码,还是有点小问题,也帮你改过来了。
回复

使用道具 举报

 楼主| 发表于 2017-5-27 18:38 | 显示全部楼层
france723 发表于 2017-5-27 18:25
你修改我之前的代码,还是有点小问题,也帮你改过来了。

真的謝謝老師,就是要這種效果,太好了,再次感謝老師
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 20:24 , Processed in 0.137765 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表