Giúp mình sửa lại code Replace này với

Liên hệ QC

tlthlnmtnn

Thành viên mới
Tham gia
1/4/12
Bài viết
37
Được thích
2
Mình có ô E3 là dữ liệu mẫu
mình mún nhập dữ liệu vào E thì nó sẽ thay thế E cột đó vào # của E3

Điều kiện chạy là cột A hoặc B hoặc C hoặc D tương ứng có dữ liệu trong đó, nếu rỗng sẽ không chạy, chỉ chạy khi nhập dữ liệu vào cột E, lúc del dữ liệu ở cột A hoặc B hoặc C hoặc D tương ứng mà cột E có dữ liệu thì không bị lỗi gì nha
VD:
E3 mẫu là
Bảng chiết tính bồi thường thiệt hại, giải phóng mặt bằng - #
Công trình: Đường dây 110 KV - Phú Lâm - Mỹ Tho - Thị xã Tân An - tỉnh Long An



Nhập ngày 1/1/2004 vào C4, sau đó nhập
Nguyễn Văn A
Địa chỉ: Long An

ở ô E4
nó sẽ thay thế vào #của E3

thành
Bảng chiết tính bồi thường thiệt hại, giải phóng mặt bằng - Nguyễn Văn A
Địa chỉ: Long An

Công trình: Đường dây 110 KV - Phú Lâm - Mỹ Tho - Thị xã Tân An - tỉnh Long An


Thanks mọi người nhiều

link (không hiểu seo đính kèm không lên): https://sites.google.com/site/shirensunyun/file-cabinet/Rep.xls
 
Lần chỉnh sửa cuối:
hix, giúp tí đi mà, sao chẳng ai comment hết vậy **~**
 
hix, giúp tí đi mà, sao chẳng ai comment hết vậy **~**
Bài của bạn đơn giản mà, nhưng chỉ tại bạn mô tả lằng nhằng quá có thể làm mọi người không hiểu ý của bạn nên không làm đấy thôi. Bạn tự đọc lại yêu cầu của bạn xem thì sẽ hiểu lý do không ai trả lời bạn

Cũng có thể đầu óc mình mụ mẫm quá nên suy đoán hỏng ra ý của bạn.
 
Mình có ô E3 là dữ liệu mẫu
mình mún nhập dữ liệu vào E thì nó sẽ thay thế E cột đó vào # của E3

Điều kiện chạy là cột A hoặc B hoặc C hoặc D tương ứng có dữ liệu trong đó, nếu rỗng sẽ không chạy, chỉ chạy khi nhập dữ liệu vào cột E, lúc del dữ liệu ở cột A hoặc B hoặc C hoặc D tương ứng mà cột E có dữ liệu thì không bị lỗi gì nha
VD:
E3 mẫu là
Bảng chiết tính bồi thường thiệt hại, giải phóng mặt bằng - #
Công trình: Đường dây 110 KV - Phú Lâm - Mỹ Tho - Thị xã Tân An - tỉnh Long An



Nhập ngày 1/1/2004 vào C4, sau đó nhập
Nguyễn Văn A
Địa chỉ: Long An

ở ô E4
nó sẽ thay thế vào #của E3

thành
Bảng chiết tính bồi thường thiệt hại, giải phóng mặt bằng - Nguyễn Văn A
Địa chỉ: Long An

Công trình: Đường dây 110 KV - Phú Lâm - Mỹ Tho - Thị xã Tân An - tỉnh Long An


Thanks mọi người nhiều

link (không hiểu seo đính kèm không lên): https://sites.google.com/site/shirensunyun/file-cabinet/Rep.xls

^^ vẫn up đc FILE bình thường bạn ah ( bạn xem lại quy định về dung lượng ) !

Mình thấy bạn sử dụng sub worksheet_change nên mình sửa lại trên cơ sở code bạn viết
bạn thử sửa lại như sau xem có đc không :

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrHandler
Application.EnableEvents = False
    If Len(Target) >= 1 Then
        [E:E].Cells(Target.Row) = [e3]
        [E:E].Cells(Target.Row).Replace "#", Target.Value
    End If
ErrHandler:
Application.EnableEvents = True
End Sub
 
^^ vẫn up đc FILE bình thường bạn ah ( bạn xem lại quy định về dung lượng ) !

Mình thấy bạn sử dụng sub worksheet_change nên mình sửa lại trên cơ sở code bạn viết
bạn thử sửa lại như sau xem có đc không :

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrHandler
Application.EnableEvents = False
    If Len(Target) >= 1 Then
        [E:E].Cells(Target.Row) = [e3]
        [E:E].Cells(Target.Row).Replace "#", Target.Value
    End If
ErrHandler:
Application.EnableEvents = True
End Sub

Ko phải như vậy bạn ơi
mình muốn lúc ko nhập cột A, B, C, D nó ko thực hiện lệnh
lúc nhập E4, E4 sẽ lấy dữ liệu của E3 và thay dữ liệu vừa nhập trong E4 vào dấu # ấy
và điều kiện để nó chạy là 1 trong 4 cột A, B, C, D phải có dữ liệu nếu cả 4 cột đều rỗng nó sẽ ko chạy code
 
Lần chỉnh sửa cuối:
Ko phải như vậy bạn ơi
mình muốn lúc nhập cột A, B, C, D nó ko thực hiện lệnh
lúc nhập E4, E4 sẽ lấy dữ liệu của E3 và thay dữ liệu vừa nhập trong E4 vào dấu # ấy
và điều kiện để nó chạy là 1 trong 4 cột A, B, C, D phải có dữ liệu nếu cả 4 cột đều rỗng nó sẽ ko chạy code
Bạn dùng code này thử xem, chỉnh thêm 1 tẹo cho phù hợp với ý đồ và màu mè của bạn

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrHandler
Application.EnableEvents = False
    If Not Application.Intersect([E:E], Target) Is Nothing Then
        dulieu = [E:E].Cells(Target.Row).Value
        [E:E].Cells(Target.Row) = [e3]
        [E:E].Cells(Target.Row).Replace "#", dulieu
    End If
ErrHandler:
Application.EnableEvents = True
End Sub
 
Bạn dùng code này thử xem, chỉnh thêm 1 tẹo cho phù hợp với ý đồ và màu mè của bạn

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrHandler
Application.EnableEvents = False
    If Not Application.Intersect([E:E], Target) Is Nothing Then
        dulieu = [E:E].Cells(Target.Row).Value
        [E:E].Cells(Target.Row) = [e3]
        [E:E].Cells(Target.Row).Replace "#", dulieu
    End If
ErrHandler:
Application.EnableEvents = True
End Sub

Thiếu dòng điều kiện rùi bạn ơi
điều kiện để nó chạy là 1 trong 4 cột A, B, C, D theo cùng cột E phải có dữ liệu nếu cả 4 cột đều rỗng nó sẽ ko chạy code
VD: A4, B4, C4, D4 ko có dữ liệu thì khi gõ vào E4 nó sẽ ko chạy, nếu như B4 có dữ liệu thì khi gõ vào E4 nó mới chạy thay thế
Với lại có thể sửa cái này lun đc ko, khi nhấn del tại cột E nó cũng chạy code, có thể chỉnh lại lun cột E ko có dữ liệu cũng đừng chạy nha
 
Lần chỉnh sửa cuối:
Thiếu dòng điều kiện rùi bạn ơi
điều kiện để nó chạy là 1 trong 4 cột A, B, C, D theo cùng cột E phải có dữ liệu nếu cả 4 cột đều rỗng nó sẽ ko chạy code
VD: A4, B4, C4, D4 ko có dữ liệu thì khi gõ vào E4 nó sẽ ko chạy, nếu như B4 có dữ liệu thì khi gõ vào E4 nó mới chạy thay thế
Với lại có thể sửa cái này lun đc ko, khi nhấn del tại cột E nó cũng chạy code, có thể chỉnh lại lun cột E ko có dữ liệu cũng đừng chạy nha

Thử thế này coi sao, cũng đoán và làm đại thôi.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
   If Target.Column = 5 And Target.Row > 3 Then
      If Target <> "" Then
         If Target.Offset(, -1) <> "" Or Target.Offset(, -2) <> "" _
         Or Target.Offset(, -3) <> "" Or Target.Offset(, -4) <> "" Then
            Application.EnableEvents = False
               Target = Replace([E3], "#", Target)
            Application.EnableEvents = True
         End If
      End If
   End If
End If
End Sub
 
Thử thế này coi sao, cũng đoán và làm đại thôi.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
   If Target.Column = 5 And Target.Row > 3 Then
      If Target <> "" Then
         If Target.Offset(, -1) <> "" Or Target.Offset(, -2) <> "" _
         Or Target.Offset(, -3) <> "" Or Target.Offset(, -4) <> "" Then
            Application.EnableEvents = False
               Target = Replace([E3], "#", Target)
            Application.EnableEvents = True
         End If
      End If
   End If
End If
End Sub

Thanks, hiện tại code này dùng tốt rùi
lúc rày, chính tả bị sao sao ấy nên đôi lúc viết thiếu chữ làm mọi người đọc ko hiểu
Điển hình
Ko phải như vậy bạn ơi
mình muốn lúc nhập cột A, B, C, D nó ko thực hiện lệnh
lúc nhập E4, E4 sẽ lấy dữ liệu của E3 và thay dữ liệu vừa nhập trong E4 vào dấu # ấy
và điều kiện để nó chạy là 1 trong 4 cột A, B, C, D phải có dữ liệu nếu cả 4 cột đều rỗng nó sẽ ko chạy code

Đáng lẽ phải viết "mình muốn lúc không nhập cột A, B, C, D nó sẽ ko thực hiện lệnh"
thiếu 1 chữ làm thay đổi ý nghĩa của điều kiện lun

Dù sao cũng cám ơn quanghai1969 và hungpecc1 nhiều nha
 
Web KT

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

Back
Top Bottom