Nhờ các a giúp hoàn thiện code khó về tham chiếu tự động

Liên hệ QC

LeHang.93

Thành viên chính thức
Tham gia
20/8/20
Bài viết
53
Được thích
9
Hiện tại em có xin được file tham chiếu tự động từ các cột vàng sang các cột xanh, tuy nhiên khi e làm lệnh xóa thì rất nặg và gây lỗi out of memory
Xin các Anh giúp em xem code có tối ưu chưa và có lỗi gì không mà gây ra hiện tượng kia ạ


'CODE TU DONG DIEN TEN KH VA NCC
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DMKH As Variant, DMNB As Variant
On Error Resume Next
Application.EnableEvents = False
If Not Intersect(Target, ActiveSheet.Columns("F:G")) Is Nothing Or Not Intersect(Target, ActiveSheet.Columns("N:O")) Is Nothing Then
With Sheets("DMKH")
lr = .UsedRange.Rows.Count
DMKH = .Range("A4:G" & lr).Value
End With
With Sheets("DMNB")
lr = .UsedRange.Rows.Count
DMNB = .Range("A4:G" & lr).Value
End With
With Sheets("DMTK")
DMTK = .Range("A4:E100").Value
End With


Else
Cells(iCell.Row, "V").Value = ""
For i = 1 To UBound(DMNB, 1)
If StrComp(iCell.Value, DMNB(i, 1), vbTextCompare) = 0 Then
Cells(iCell.Row, "V").Value = DMNB(i, 2)
Exit For
End If
Next i
End If
ElseIf iCell.Column = 14 Then
If iCell.Value = "" And iCell.Offset(0, 1).Value = "" Then
Cells(iCell.Row, "J").Value = ""
Cells(iCell.Row, "R").Value = ""
Else
If iCell.Value <> "" Then
For i = 1 To UBound(DMTK, 1)
If StrComp(iCell.Value, DMTK(i, 1), vbTextCompare) = 0 Then
If Len(DMTK(i, 5)) > 1 Then Cells(iCell.Row, "J") = DMTK(i, 5)
If Len(DMTK(i, 3)) > 1 Then Cells(iCell.Row, "R") = DMTK(i, 3)
Exit For
End If
Next i
ElseIf iCell.Offset(0, 1).Value <> "" Then
For i = 1 To UBound(DMTK, 1)
If StrComp(iCell.Offset(0, 1).Value, DMTK(i, 1), vbTextCompare) = 0 Then
If Len(DMTK(i, 5)) > 1 Then Cells(iCell.Row, "J") = DMTK(i, 5)
If Len(DMTK(i, 4)) > 1 Then Cells(iCell.Row, "R") = DMTK(i, 4)
Exit For
End If
Next i
End If
End If
ElseIf iCell.Column = 15 Then
If iCell.Value = "" And iCell.Offset(0, -1).Value = "" Then
Cells(iCell.Row, "J").Value = ""
Cells(iCell.Row, "R").Value = ""
Else
If iCell.Offset(0, -1).Value = "" Then
For i = 1 To UBound(DMTK, 1)
If StrComp(iCell.Value, DMTK(i, 1), vbTextCompare) = 0 Then
If Len(DMTK(i, 5)) > 1 Then Cells(iCell.Row, "J") = DMTK(i, 5)
If Len(DMTK(i, 4)) > 1 Then Cells(iCell.Row, "R") = DMTK(i, 4)
Exit For
End If
Next i
Else
If Len(Cells(iCell.Row, "J")) <= 1 Then
For i = 1 To UBound(DMTK, 1)
If StrComp(iCell.Value, DMTK(i, 1), vbTextCompare) = 0 Then
If Len(DMTK(i, 5)) > 1 Then Cells(iCell.Row, "J") = DMTK(i, 5)
Exit For
End If
Next i
End If
If Len(Cells(iCell.Row, "R")) <= 1 Then
For i = 1 To UBound(DMTK, 1)
If StrComp(iCell.Value, DMTK(i, 1), vbTextCompare) = 0 Then
If Len(DMTK(i, 4)) > 1 Then Cells(iCell.Row, "R") = DMTK(i, 4)
Exit For
End If
Next i
End If
End If
End If
End If
End If
Next iCell
End If
Erase DMKH
Erase DMNB
Erase DMTK
Application.EnableEvents = True


End Sub


1623855461712.png
 
Lần chỉnh sửa cuối:
"làm lệnh xóa" là thế nào:
1/ Chọn 1 ô => bấm Delete?
2/ Chọn nhiều ô => bấm Delete?
3/ Viết code để xóa 1 vùng nào đó?

Và xóa bị lỗi là xóa cái gì, xóa chỗ nào?
 
Lần chỉnh sửa cuối:
Upvote 0
"làm lệnh xóa" là thế nào:
1/ Chọn 1 ô => bấm Delete?
2/ Chọn nhiều ô => bấm Delete?
3/ Viết code để xóa 1 vùng nào đó?

Và xóa bị lỗi là xóa cái gì, xóa chỗ nào?
Dạ viết code xóa toàn bộ vùng ạ,
xóa trắng để nhập lại thôi ạ
Trong file đã có code xóa rồi ạ
 
Upvote 0
"làm lệnh xóa" là thế nào:
1/ Chọn 1 ô => bấm Delete?
2/ Chọn nhiều ô => bấm Delete?
3/ Viết code để xóa 1 vùng nào đó?

Và xóa bị lỗi là xóa cái gì, xóa chỗ nào?

Vẫn là bài vờn vờn hôm trước thôi anh. Quăng lưới nhiều thế mà chưa túm được cá. :p

 
Upvote 0
Upvote 0
Vẫn là bài vờn vờn hôm trước thôi anh. Quăng lưới nhiều thế mà chưa túm được cá. :p

Là Tôn Ngộ Không hay sao mà biến hình nhanh thật, mới leuk chừ thành LeHang.93 rồi?

Tôi biết mợ quăng lưới rồi nên tôi nắm cái lưới giật giật thôi.
 
Upvote 0
Là Tôn Ngộ Không hay sao mà biến hình nhanh thật, mới leuk chừ thành LeHang.93 rồi?

Tôi biết mợ quăng lưới rồi nên tôi nắm cái lưới giật giật thôi.
Hai bác là đàn ông mà chán quá, không giúp thì thôi nói gì kỳ vậy ?
Đàn ông con trai nên phóng khoáng chút sao lại đâm chọt kiểu trẻ con thế
Chỗ này tôi cũng thuê người khác viết nhưng không được như ý nhờ mọi người xem lại thôi, Anh cảm thấy không hài lòng thì bỏ qua sao phải làm thế?
Mình đàn ông kiếm việc lớn mà làm sao phải đâm chọt chị em vậy ?
 
Upvote 0
Chỗ này tôi cũng thuê người khác viết nhưng không được như ý nhờ mọi người xem lại thôi
Đã bỏ tiền ra thuê thì kiếm người có khả năng, có trình độ làm đàng hoàng. Vừa mất tiền lại mang bực bội, không được việc vào làm gì.
Rồi khoe đi thuê rồi, lại mang lên đây "nhờ" xem ==> Thấy hơi kỳ kỳ.

Vấn đề ở đây là bạn đang vi phạm nội quy nhé. Lần gần nhất có một bài đăng lại đã nhắc rồi, lần này lại tiếp tục. Mình tham gia diễn đàn nào là phải tuân thủ nội quy ở đó.

1623893954823.png
 
Upvote 0
Dạ viết code xóa toàn bộ vùng ạ,
xóa trắng để nhập lại thôi ạ
Trong file đã có code xóa rồi ạ
Hai bác là đàn ông mà chán quá, không giúp thì thôi nói gì kỳ vậy ?
Đàn ông con trai nên phóng khoáng chút sao lại đâm chọt kiểu trẻ con thế
Chỗ này tôi cũng thuê người khác viết nhưng không được như ý nhờ mọi người xem lại thôi, Anh cảm thấy không hài lòng thì bỏ qua sao phải làm thế?
Mình đàn ông kiếm việc lớn mà làm sao phải đâm chọt chị em vậy ?
Biết đến hồi nào mà bạn học được cách trình bày yêu cầu của mình 1 cách rõ ràng, trong sáng như thế này: Khi em chạy sub lenh_xoa trong Module1 thì bị lỗi tràn bộ nhớ.

"Đàn ông con trai nên phóng khoáng chút sao lại đâm chọt kiểu trẻ con thế" => Khi người hướng dẫn mình (tức giống như thầy bạn đấy, nhưng tôi không dám nhận mình là thầy) quở trách mình thì có phải là đâm chọt không. Tôi chả "đâm chọt" ai cả mà chỉ là gián tiếp quở trách bạn đấy nên bạn tự nhìn lại đi nhé!
 
Lần chỉnh sửa cuối:
Upvote 0
Biết đến hồi nào mà bạn học được cách trình bày yêu cầu của mình 1 cách rõ ràng, trong sáng như thế này: Khi em chạy sub lenh_xoa trong Module1 thì bị lỗi tràn bộ nhớ
Xin lỗi bác em làm kế toán chưa từng học một chữ nào Vba, vì vậy câu chuyên ngành em không hiểu và cố trình bày theo suy nghĩ của mình
 
Upvote 0
Xin lỗi bác em làm kế toán chưa từng học một chữ nào Vba, vì vậy câu chuyên ngành em không hiểu và cố trình bày theo suy nghĩ của mình
Bạn nên học cách đi chứ đừng cố biện bác. Học kế toán lại càng cần sự trình bày rõ ràng, trong sáng, dễ hiểu. Bạn có thấy tôi viết câu: "Khi em chạy sub lenh_xoa trong Module1 thì bị lỗi tràn bộ nhớ." có nặng gì về thuật ngữ VBA không? Bạn hoàn toàn viết được như thế, nhưng lại không viết như thế.
 
Upvote 0
Bạn nên học cách đi chứ đừng cố biện bác. Học kế toán lại càng cần sự trình bày rõ ràng, trong sáng, dễ hiểu. Bạn có thấy tôi viết câu: "Khi em chạy sub lenh_xoa trong Module1 thì bị lỗi tràn bộ nhớ." có nặng gì về thuật ngữ VBA không? Bạn hoàn toàn viết được như thế, nhưng lại không viết như thế.
Người ta cho rằng "đàn ông con trai nên phóng khoáng [sic]" có nghĩa là nói ít hiểu nhiều, nói Đông hiểu Tây. Kiểu các cô quen làm nũng với bồ vậy mà.
 
Upvote 0
Người ta cho rằng "đàn ông con trai nên phóng khoáng [sic]" có nghĩa là nói ít hiểu nhiều, nói Đông hiểu Tây. Kiểu các cô quen làm nũng với bồ vậy mà.
Em nghĩ rằng trong cuộc sống này để tránh cho người khác và bản thân mình bớt phiền não, bớt stress thì trước hết phải gạt đi những thứ gọi là " nhỏ nhặt". Bớt đi những thứ "nhỏ nhặt" thì đầu óc và góc nhìn sẽ thoáng để làm những việc lớn. ( Chính vì vậy con gái tụi em không làm được việc to tát vì hay xét nét câu chữ đúng không Anh ?)

Không ai là tài giỏi cả, bản thân các Anh khi mới học những cái mới cũng sẽ có những câu hỏi ngô ngê, những cách dùng từ không chuẩn. Em chấp nhận và rất cảm ơn nếu được các anh góp ý về những điều này, nhưng không vì thế mà các Anh nhạo báng lời cần giúp đỡ của người khác. Các Anh có thể không giúp nhưng xin đừng thể hiện sự " hiểu biết quá đà", vì phần chung đó là tính cách của một thanh niên chưa trưởng thành

Có thể kỹ năng về Excel của em chưa xuất sắc để hiểu những gì Anh @Maika8008 nói, ok e chấp nhận nhưng bác không giúp lại bảo e "câu cá" này nọ thực sự bác quá trẻ con. Những người giúp em em đều nhắn tin đề nghị gửi phí chứ em chưa bh nhận nhờ không công với những cái mất thời gian

Bác @befaint : Chủ đề đó là 1 chủ đề khác, em đã được làm xong và em cũng có xin gửi phí cho bác Hieu CD nhưng bác ấy không nhận. Em không nói là khoe đi thuê mà e muốn nói ở đây rằng những thứ e nhờ là e có trả phí chứ em không có ý định "quăng chài, bắt cá" gì khác
 
Upvote 0
Em nghĩ rằng trong cuộc sống này để tránh cho người khác và bản thân mình bớt phiền não, bớt stress thì trước hết phải gạt đi những thứ gọi là " nhỏ nhặt". Bớt đi những thứ "nhỏ nhặt" thì đầu óc và góc nhìn sẽ thoáng để làm những việc lớn. ( Chính vì vậy con gái tụi em không làm được việc to tát vì hay xét nét câu chữ đúng không Anh ?)

Không ai là tài giỏi cả, bản thân các Anh khi mới học những cái mới cũng sẽ có những câu hỏi ngô ngê, những cách dùng từ không chuẩn. Em chấp nhận và rất cảm ơn nếu được các anh góp ý về những điều này, nhưng không vì thế mà các Anh nhạo báng lời cần giúp đỡ của người khác. Các Anh có thể không giúp nhưng xin đừng thể hiện sự " hiểu biết quá đà", vì phần chung đó là tính cách của một thanh niên chưa trưởng thành

Có thể kỹ năng về Excel của em chưa xuất sắc để hiểu những gì Anh @Maika8008 nói, ok e chấp nhận nhưng bác không giúp lại bảo e "câu cá" này nọ thực sự bác quá trẻ con. Những người giúp em em đều nhắn tin đề nghị gửi phí chứ em chưa bh nhận nhờ không công với những cái mất thời gian

Bác @befaint : Chủ đề đó là 1 chủ đề khác, em đã được làm xong và em cũng có xin gửi phí cho bác Hieu CD nhưng bác ấy không nhận. Em không nói là khoe đi thuê mà e muốn nói ở đây rằng những thứ e nhờ là e có trả phí chứ em không có ý định "quăng chài, bắt cá" gì khác
Mình có đọc và mình nghĩ bạn sai rồi. Ở đây, toàn các anh chị rất nhiệt tình và khi bạn hỏi bạn cũng nên biết mình đang hỏi gì và họ chỉ bảo mình phải tiếp thu. Ở đâu cũng có quy định riêng nhất là ở diễn đàn lâu đời như GPE. Cái thời gian mà bạn gõ cả đống chữ để thể hiện cái tôi và nói đàn ông phải thế nọ thế kia thì bạn tập trung vào vấn đề các anh chị giúp cho nhanh. Một vài góp ý.
 
Upvote 0
Mình có đọc và mình nghĩ bạn sai rồi. Ở đây, toàn các anh chị rất nhiệt tình và khi bạn hỏi bạn cũng nên biết mình đang hỏi gì và họ chỉ bảo mình phải tiếp thu. Ở đâu cũng có quy định riêng nhất là ở diễn đàn lâu đời như GPE. Cái thời gian mà bạn gõ cả đống chữ để thể hiện cái tôi và nói đàn ông phải thế nọ thế kia thì bạn tập trung vào vấn đề các anh chị giúp cho nhanh. Một vài góp ý.
Xin đọc lại #4 đến #7, vui lòng không xu nịnh !
 
Upvote 0
Tính ra muốn học hỏi thôi mà cũng nhiêu khê quá! :p
Mấy bác thoáng giùm chút cho em út nó nhờ.
 
Upvote 0
Thôi bỏ qua đi mọi người. Tác giả thử gửi file lên xem sao.
 
Upvote 0
Thôi bỏ qua đi mọi người. Tác giả thử gửi file lên xem sao.
Dạ thôi ạ, Em đã thuê được rồi ạ. Tính ra là 2 lần. lần đầu thuê được nhưng lỗi chậm cũng không nỡ đòi tiền người ta nên tiếc tiền cố lần mò lại, lần 2 thì người khác ok rồi ạ
 
Upvote 0
Web KT
Back
Top Bottom