Chuyên mục xử lý, gỡ rối code VBA

Liên hệ QC
Status
Không mở trả lời sau này.

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,918
... em đg vướng chỗ xử lý điều kiện người dùng nhập vào như <=/>=/</> ... 1 số . Viết bằng cách gọi hàm Sumif phối hợp để xử lý thì em viết được rồi. Nhưng Em đang thắc mắc về cách để mình tự xử lý những điều kiện này.
Cái này hơi phức tạp. Phải có kiến thức về nguyên tắc sử lý của trình duyệt.

chứ k thì chỉ có mình viết mình mới biết cần tham số gì, số lượng tham số trong hàm, đưa cho người khác thì phải hướng dẫn cách dùng cụ thể.
Hàm phức tạp đương nhiên phải hướng dẫn cách dùng cụ thể. Không có đường nào khác.
Cái phần gợi ý là để nhắc cho chính mình - có cỡ vài chục cái hàm thì ai mà nhớ cho hết. Chứ bảo ngừoi dùng đọc một vài dòng mà hiểu nổi thì bạn đánh giá hơi cao khả năng vắn tắt diễn đạt của mình đấy.
 
Upvote 0
Ngay các hàm Excel cũng phải đọc để hiểu hàm làm gì, ý nghĩa và cách dùng các tham số v...v Tự dưng thì làm sao biết được.

Hàm người dùng cũng tương tự. Phải đọc mới biết chứ làm sao tự biết được?
Tất nhiên nếu không có mô tả kỹ lưỡng thì ít ra cũng phải có mô tả ngắn gọn về triết lý của hàm, các tham số. Người dùng chỉ cần hiểu và sử dụng hàm. Nhưng để người ta có thể hiểu kỹ hơn và chỉnh sửa theo nhu cầu thì nên có chú thích, càng nhiều càng tốt.

Ví dụ về thêm mô tả vào cửa sổ Insert Function trong tập tin

Về gợi ý ở thanh công thức thì tôi không biết. Nếu chưa quen thì dùng Insert Function thôi.
 

File đính kèm

  • Them mo ta ham vao cua so Insert Function.xlsm
    17.5 KB · Đọc: 15
Upvote 0
Hàm phức tạp đương nhiên phải hướng dẫn cách dùng cụ thể. Không có đường nào khác.
Cái phần gợi ý là để nhắc cho chính mình - có cỡ vài chục cái hàm thì ai mà nhớ cho hết.

Vâng ạ. Em có tìm rất nhiều về mấy thắc mắc này mà không thấy ai viết, chỉ sợ có mà mình k biết để sử dụng thì mất công quá. Sau khi nghe các anh giải thích thì hiểu ra vấn đề rồi. Em cảm ơn nhiều ạ.
 
Upvote 0
[QUOTE="batman1]
Ví dụ về thêm mô tả vào cửa sổ Insert Function trong tập tin
Về gợi ý ở thanh công thức thì tôi không biết. Nếu chưa quen thì dùng Insert Function thôi.[/QUOTE]

Xem đi xem lại mấy lần mới hiểu ý Bạn viết, k nghĩ đến cái sự kiện wb_open. Cái này giờ mình mới biết, có cái này cũng tốt rồi. Cảm ơn Bạn nhé :)
 
Upvote 0
Xin chào mọi người,
Em có 1 file tạo cơ sở dữ liệu mã vật tư, sử dụng chủ yếu là Data validation, và hàm dò tìm vlookup, index(match). Nhưng dữ liệu lên tới 8000 dòng, liên kết nhiều sheet nên công thức chạy rất lâu. Em mong mọi người giúp đỡ để cải thiện file. Chi tiết em đã note trong từng sheet (màu đen) ạ.
Cảm ơn mọi người.
 

File đính kèm

  • 180615_CSDL mã vật tư.GPE.xlsm
    141.1 KB · Đọc: 12
Upvote 0
Theo mình biết thì đối với CSDL lớn thì không nên dùng excel mà dùng các phần mềm chuyên dùng để quản lí CSDL khác. Hoặc bạn có thể dùng SQL trong excel, bạn thử tìm hiểu về addin Atools xem.
Cảm ơn bạn,
Do bên mình vừa thay đổi quy trình làm việc, nên xây dựng CSDL trên excel để cung cấp cho bên viết phần mềm. Công việc thật sự rất bận, nên anh chị nào có thể giúp đỡ Code VBA để giải quyết trong khi chờ phần mềm thì tốt quá.
 
Upvote 0
các bạn ơi giúp mình với mình có file vba trước chạy win 7 32 bit thì vẫn bình thường nhưng từ hôm mình cài win8.1 64 bit thì không chạy được
mong các bạn giúp mình với
mình chạy file vba với dữ liệu ở trên thì bị 2 lỗi sau mà không biết cách xử lý :
loi 1.jpg
lỗi thứ 2 :
loi 2.jpg
file vba:
http://www.mediafire.com/file/kksqb283qaby627/Xu ly File - Ghi De - Cong Thuc .xlsm
file excel cần:
http://www.mediafire.com/file/262dnc6ddu56vo5/1Goc.xls
file excel sua:
http://www.mediafire.com/file/2bal4cap7y740a5/file can sua.rar
 
Lần chỉnh sửa cuối:
Upvote 0
Em muốn lọc nhiều điều kiện trên một cột như dưới nhưng nó báo lỗi.
Các bác chỉ giúp em sai chỗ nào ạ.

Sub Macro2()
Range("A1:p1").AutoFilter
ActiveSheet.Range("$A$1:$P$465").AutoFilter Field:=3, Criteria1:= _
"=*BALL RETAINER*", Operator:=xlOr, Criteria2:= _
"=*END PLATE*", Operator:=xlOr, Criteria3:= _
"=*PIPE*"
End Sub
 
Upvote 0
Em muốn lọc nhiều điều kiện trên một cột như dưới nhưng nó báo lỗi.
Các bác chỉ giúp em sai chỗ nào ạ.

Sub Macro2()
Range("A1:p1").AutoFilter
ActiveSheet.Range("$A$1:$P$465").AutoFilter Field:=3, Criteria1:= _
"=*BALL RETAINER*", Operator:=xlOr, Criteria2:= _
"=*END PLATE*", Operator:=xlOr, Criteria3:= _
"=*PIPE*"
End Sub
Thử:
PHP:
Range("A1:p1").AutoFilter
ActiveSheet.Range("$A$1:$P$465").AutoFilter Field:=3, Criteria1:=Array("*BALL RETAINER*", "*END PLATE*", "*PIPE*"), Operator:=xlFilterValues
 
Upvote 0
các bạn ơi giúp mình với mình có file vba trước chạy win 7 32 bit thì vẫn bình thường nhưng từ hôm mình cài win8.1 64 bit thì không chạy được
mong các bạn giúp mình với
mình chạy file vba với dữ liệu ở trên thì bị 2 lỗi sau mà không biết cách xử lý :
View attachment 197965
lỗi thứ 2 :
View attachment 197966
file vba:
http://www.mediafire.com/file/kksqb283qaby627/Xu ly File - Ghi De - Cong Thuc .xlsm
file excel cần:
http://www.mediafire.com/file/262dnc6ddu56vo5/1Goc.xls
file excel sua:
http://www.mediafire.com/file/2bal4cap7y740a5/file can sua.rar

Bạn Vào Tools -> References sẽ thấy dòng MISSING, gỡ check dòng đó.

miss-png.198075
 

File đính kèm

  • miss.png
    miss.png
    16.5 KB · Đọc: 94
Upvote 0
Xinh đẹp thì có thể, nhưng bạn gái thì chưa chắc.
Thứ nhất, chưa có gì khẳng định giới tính, đờn ông, đờn bà, hay còn ở giữa - chưa chuyển.
Thứ hai, chưa có gì khẳng định là dậy thì hay sồn sồn.
 
Upvote 0
Upvote 0
Em nhờ các bác sửa lại code dò tìm 6 điều kiện hộ em với ạ vì em viết nó chạy chậm quá ạ :D
Function TK6DK(DK1, DK2, DK3, DK4, DK5, DK6 As Variant, _
VUNGDK1, VUNGDK2, VUNGDK3, VUNGDK4, VUNGDK5, VUNGDK6, VUNGKQ As Range)
Dim I As Integer, iCount As Integer
iCount = VUNGDK1.Rows.Count
For I = 1 To iCount
If UCase(VUNGDK1.Cells(I, 1)) + UCase(VUNGDK2.Cells(I, 1)) = UCase(DK1) + UCase(DK2) Then
If UCase(VUNGDK3.Cells(I, 1)) = UCase(DK3) Then
If UCase(VUNGDK4.Cells(I, 1)) = UCase(DK4) Then
If UCase(VUNGDK5.Cells(I, 1)) = UCase(DK5) Then
If UCase(VUNGDK6.Cells(I, 1)) = UCase(DK6) Then
TK6DK = VUNGKQ.Cells(I, 1)
Exit For
End If
End If
End If
End If
End If
Next I
End Function
 
Upvote 0
Ai lại đi nhìn ảnh? Ảnh thế nhưng lúc quên vẫn khà khà khà như thường.

Ấy sao lại là quên vậy bạn ? Người ta đâu có ý định "diễn" đâu bạn. Chỉ là ai gọi bằng gì cũng trả lời, miễn đừng kêu bằng thằng/con quỷ cái là được rồi.
 
Upvote 0
Ấy sao lại là quên vậy bạn ? Người ta đâu có ý định "diễn" đâu bạn. Chỉ là ai gọi bằng gì cũng trả lời, miễn đừng kêu bằng thằng/con quỷ cái là được rồi.
Cái đó là viết về "nguyên tắc" chung, không nói cụ thể ảnh của ai. Chả nhẽ nhìn ảnh đứa bé đang bò thì lại viết "bé làm thế là sẽ có lỗi nhé"?
 
Upvote 0
Status
Không mở trả lời sau này.
Web KT
Back
Top Bottom