toandiennuoc123
Thành viên thường trực




- Tham gia
- 7/3/12
- Bài viết
- 239
- Được thích
- 9




Nhờ các bạn tạo Sub giúp tôi, xem chi tiết trong file đính kèm




Cám ơn bạn, nhưng mình thấy không được tiện cho lắm, vì phải nhập thông số, nếu được như yêu cầu của mình thì hay quá




Bạn cho mình hỏi : bây giờ copy ô bên trái thì sửa code thế nào ?
Bạn cho mình hỏi : bây giờ copy ô bên trái thì sửa code thế nào ?
Public Function MyCopy(ByVal rSrcRng As Range, Optional Opt As Long)
Dim TmpArr(), ResArr()
Dim lR As Long, lC As Long, i As Long, k As Long
ReDim TmpArr(1 To rSrcRng.Rows.Count * rSrcRng.Columns.Count, 1 To 1)
For lR = 1 To rSrcRng.Rows.Count
For lC = 1 To rSrcRng.Columns.Count
If rSrcRng(lR, lC).Interior.Color <> 16777215 Then
If Opt <> 0 Then
Select Case Opt
Case 1
If rSrcRng(lR, lC - 1) <> "" Then
k = k + 1
TmpArr(k, 1) = rSrcRng(lR, lC - 1)
End If
Case 2
If rSrcRng(lR - 1, lC) <> "" Then
k = k + 1
TmpArr(k, 1) = rSrcRng(lR - 1, lC)
End If
Case 3
If rSrcRng(lR + 1, lC) <> "" Then
k = k + 1
TmpArr(k, 1) = rSrcRng(lR + 1, lC)
End If
End Select
Else
If rSrcRng(lR, lC + 1) <> "" Then
k = k + 1
TmpArr(k, 1) = rSrcRng(lR, lC + 1)
End If
End If
End If
Next lC
Next lR
If k Then
ReDim ResArr(1 To k, 1 To 1)
For i = 1 To k
ResArr(i, 1) = TmpArr(i, 1)
Next i
End If
MyCopy = ResArr
End Function




Cám ơn bạn rất nhiều !!!!!!!!!. Đúng là " được voi đòi Hai Bà Trưng", bạn có thể kết hợp kiểu bài #3 và #4 được không ??? Khi muốn chọn kiểu copy thì xuất hiện thông báo chọn ( trên, dưới, trái, phải ) -> OK. Được như vậy thì hay quá... quá.




Đúng là cải tiến này đấy, mong bạn giúp choNếu có cải tiến thêm thì chỉ nên thêm phần hướng copy: phải, trái, trên, dưới là ok.
Đúng là cải tiến này đấy, mong bạn giúp cho




Thử file này coi sao. Quét chọn vùng cần xử lý. Click chuột phải, chọn vào Copy Menu, chọn tiếp trái, phải, trên, dưới...Nhờ các bạn tạo Sub giúp tôi, xem chi tiết trong file đính kèm



