Xin code hoán chuyển vị trí 2 vùng

  • Thread starter Thread starter boyxin
  • Ngày gửi Ngày gửi
Liên hệ QC

boyxin

Members actively
Tham gia
10/3/08
Bài viết
1,664
Được thích
2,335
Chào các bác. EM CÓ VẤN ĐỀ THẾ NÀY
Trên 1 bảng tính, sau khi chọn 1 vùng (2 cell liền nhau trên cùng 1 dòng). chạy code thì hiện lên hộp
Box.JPG
và địa chỉ của vùng 1 hiện trong khung vị trí 1Chọn vào khung vị trí 2 thì cho phép ta chọn tiếp vùng 2 (2 cell liền nhau trên cùng 1 dòng), khi chọn xong thì địa chỉ của vùng 2 hiện trong khung vị trí 2
Nhấn nút chuyển thì giá trị của chúng được hoán chuyển trí cho nhau (dạng Paste Special Value - không ảnh hưởng tới công thức tại các cell khác tham chiếu tới những cell đã hoán chuyển vị trí về giá trị)
Rất mong được các bác giúp đỡ
 
Chào các bác. EM CÓ VẤN ĐỀ THẾ NÀY
Trên 1 bảng tính, sau khi chọn 1 vùng (2 cell liền nhau trên cùng 1 dòng). chạy code thì hiện lên hộp
Box.JPG
và địa chỉ của vùng 1 hiện trong khung vị trí 1Chọn vào khung vị trí 2 thì cho phép ta chọn tiếp vùng 2 (2 cell liền nhau trên cùng 1 dòng), khi chọn xong thì địa chỉ của vùng 2 hiện trong khung vị trí 2
Nhấn nút chuyển thì giá trị của chúng được hoán chuyển trí cho nhau (dạng Paste Special Value - không ảnh hưởng tới công thức tại các cell khác tham chiếu tới những cell đã hoán chuyển vị trí về giá trị)
Rất mong được các bác giúp đỡ
Thuật toán chung để chuyển dời vị trí 2 vùng cho nhau là:
- Copy vùng 1 ra 1 vùng tạm
- Cho vùng 1 = vùng 2
- Cho vùng 2 = vùng tạm
ví dụ như file đính kèm:
PHP:
Sub Test()
 Dim Rng1 As Range, Rng2 As Range, Temp As Variant
 Set Rng1 = [A1:B1]
 Set Rng2 = [E1:F1]
 Temp = Rng1.Value
 Rng1.Value = Rng2.Value
 Rng2.Value = Temp
End Sub
Tôi nghĩ bạn dư sức làm mà
 

File đính kèm

Upvote 0
Thuật toán chung để chuyển dời vị trí 2 vùng cho nhau là:
- Copy vùng 1 ra 1 vùng tạm
- Cho vùng 1 = vùng 2
- Cho vùng 2 = vùng tạm
ví dụ như file đính kèm:
PHP:
Sub Test()
 Dim Rng1 As Range, Rng2 As Range, Temp As Variant
 Set Rng1 = [A1:B1]
 Set Rng2 = [E1:F1]
 Temp = Rng1.Value
 Rng1.Value = Rng2.Value
 Rng2.Value = Temp
End Sub
Tôi nghĩ bạn dư sức làm mà


Vấn đề của mình ở đây là
vùng 1, vùng 2 là người dùng chọn tùy ý, không có phần chung
địa chỉ vùng 1, vùng 2 hiện trong hai khung
 
Upvote 0
Mình cứu bạn đây!
PHP:
Sub chuyenvung() Dim vung1 As Range, vung2 As Range Dim vitri1, vitri2 On Error GoTo loi Set vung1 = Application.InputBox("Chon vi tri 1:", "Thong bao", Type:=8) Set vung2 = Application.InputBox("Chon vi tri 2:", "Thong bao", Type:=8) vitri1 = vung1 vitri2 = vung2 vung2 = vitri1 vung1 = vitri2 loi: Exit Sub End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn có thể dùng Form. Nhớ chọn vùng trước khi load form:
Mã:
Private Sub UserForm_Activate()
Dim rgn1 As Range, rgn2 As Range
   Set rgn1 = Selection.Areas(1)
   Set rgn2 = Selection.Areas(2)
   TextBox1.Text = rgn1.Address
   TextBox2.Text = rgn2.Address
End Sub
 
Upvote 0
Trong toolbox của form có cái control RefEdit, dùng nó để chọn vùng được. Nếu dùng form thì vẽ 2 cái, chọn 2 vùng, kiểm tra kích thước 2 vùng cho bằng nhau, rồi đổi.
Tính làm 1 cái mẫu mà Excel mình hư gì đó, vẽ RefEdit lên form nóbáo Invalid Argument. Trước kia đã từng làm được.

Tìm thấy file cũ lần trước, có dùng RefEdit
 

File đính kèm

Upvote 0
Mong muốn của em đã ghi rõ ràng trong file đính kèmRất mong các bác giúp đỡ
 

File đính kèm

Upvote 0
Bực quá file lỗi tùm lum luôn! Mình gửi lại theo yêu cầu của bạn nè! Chúc bạn vui! Thân.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Làm được file mẫu rồi đây
 

File đính kèm

Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom