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

Status
Không mở trả lời sau này.

QUYTT2

Thành viên mới
Tham gia ngày
13 Tháng mười 2017
Bài viết
5
Được thích
0
Điểm
163
Tuổi
26
Xin chào các anh/chị/em, e đang có một số thắc mắc về Function trong VBA, xin nhờ các tiền bối chỉ giáo giúp em:
+ Hàm trong excel được viết bằng ngôn ngữ gì? Có cách nào mình xem được code của các hàm đó không ạ.
+ Khi viết Function trong VBA, có cách nào để khi sử dụng Function này ngoài bảng tính excel thì khi gõ tên hàm sẽ hiện lên các gợi ý về tham số của hàm như hàm Excel không ạ.
Em xin cảm ơn.
 

truongvu317

Thành viên tích cực
Tham gia ngày
15 Tháng mười một 2010
Bài viết
426
Được thích
337
Điểm
410
Ngôn ngữ gì thì không biết, nhưng sẽ không x em được code bởi nó đã được dịch thành mã máy.
hàm sẽ hiện lên các gợi ý về tham số của hàm như hàm Excel không ạ.
Cái này hình như làm được, nhưng phức tạp thì phải.
Bài đã được tự động gộp:

Ngôn ngữ gì thì không biết, nhưng sẽ không x em được code bởi nó đã được dịch thành mã máy.
hàm sẽ hiện lên các gợi ý về tham số của hàm như hàm Excel không ạ.
Cái này hình như làm được, nhưng phức tạp thì phải.
 

VetMini

Chuyên gia GPE
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
6,612
Được thích
7,695
Điểm
560
Xin chào các anh/chị/em, e đang có một số thắc mắc về Function trong VBA, xin nhờ các tiền bối chỉ giáo giúp em:
+ Hàm trong excel được viết bằng ngôn ngữ gì? Có cách nào mình xem được code của các hàm đó không ạ.
...
Mắc mớ gì chào anh/chị/em mà nhờ thì lại "tiền bối", chỉ giáo với chỉ gươm.
Hầu hết các phần mềm của MS Office 2003, nhất là Excel, được viết bằng C++. Nhưng về sau này, MS có khuynh hướng dùng Víual Studio và rèactor code lại cho hiệu quả. (Cho đến giờ phút này, C++ vẫn còn đứng đầu về tốc độ.)
Microsoft không có lệ cho xem mã. Và họ có cầu chứng cho nên dẫu có dùng cách mò ngược (reverse enginneering) thì cũng là phạm pháp. Tuy nhiên, nếu chỉ muốn xem đại khái cách thực hiện hàm thì có thể xem tạm mã nguồn mở, ví dụ LibreOffice.
 

QUYTT2

Thành viên mới
Tham gia ngày
13 Tháng mười 2017
Bài viết
5
Được thích
0
Điểm
163
Tuổi
26
Mắc mớ gì chào anh/chị/em mà nhờ thì lại "tiền bối", chỉ giáo với chỉ gươm.
Hầu hết các phần mềm của MS Office 2003, nhất là Excel, được viết bằng C++. Nhưng về sau này, MS có khuynh hướng dùng Víual Studio và rèactor code lại cho hiệu quả. (Cho đến giờ phút này, C++ vẫn còn đứng đầu về tốc độ.)
Microsoft không có lệ cho xem mã. Và họ có cầu chứng cho nên dẫu có dùng cách mò ngược (reverse enginneering) thì cũng là phạm pháp. Tuy nhiên, nếu chỉ muốn xem đại khái cách thực hiện hàm thì có thể xem tạm mã nguồn mở, ví dụ LibreOffice.
:D dạ, em cảm ơn ạ. VietMini cho em hỏi luôn vấn đề này với ạ, em muốn tự viết 1 Function để tính Tổng theo điều kiện (có thêm 1 vài tham số nữa nên k chỉ đơn thuần gọi sumif trong excel được), 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. Nhờ a giúp đỡ :)
Bài đã được tự động gộp:

Cái này hình như làm được, nhưng phức tạp thì phải.[/QUOTE]

Dạ em cảm ơn TruongVu317 ạ. Nếu làm được thì tốt a nhỉ, 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ể.
 
Lần chỉnh sửa cuối:

VetMini

Chuyên gia GPE
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
6,612
Được thích
7,695
Điểm
560
... 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.
 

batman1

Thành viên gắn bó
Tham gia ngày
8 Tháng chín 2014
Bài viết
1,818
Được thích
2,819
Điểm
360
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

QUYTT2

Thành viên mới
Tham gia ngày
13 Tháng mười 2017
Bài viết
5
Được thích
0
Điểm
163
Tuổi
26
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 ạ.
 

QUYTT2

Thành viên mới
Tham gia ngày
13 Tháng mười 2017
Bài viết
5
Được thích
0
Điểm
163
Tuổi
26
[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é :)
 

honey_552911

Thành viên mới
Tham gia ngày
12 Tháng tư 2012
Bài viết
24
Được thích
1
Điểm
365
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

aries8214

Thành viên mới
Tham gia ngày
11 Tháng ba 2009
Bài viết
23
Được thích
5
Điểm
365
Tuổi
37

honey_552911

Thành viên mới
Tham gia ngày
12 Tháng tư 2012
Bài viết
24
Được thích
1
Điểm
365
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á.
 

ipadvietnam3

Thành viên mới
Tham gia ngày
23 Tháng sáu 2015
Bài viết
5
Được thích
0
Điểm
163
Tuổi
35
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:

tq_thuyet

Thành viên mới
Tham gia ngày
29 Tháng mười một 2008
Bài viết
44
Được thích
4
Điểm
665
Nơi ở
Hà Nội
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
 

phulien1902

GPE - My love
Tham gia ngày
6 Tháng bảy 2013
Bài viết
3,056
Được thích
3,587
Điểm
560
Nơi ở
Hải Phòng
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
 

AutoReply

Thành viên tích cực
Tham gia ngày
18 Tháng hai 2016
Bài viết
479
Được thích
603
Điểm
335
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 đó.

 

File đính kèm

VetMini

Chuyên gia GPE
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
6,612
Được thích
7,695
Điểm
560
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.
 

joinatz

Thành viên mới
Tham gia ngày
13 Tháng năm 2018
Bài viết
8
Được thích
0
Điểm
13
Tuổi
40
Status
Không mở trả lời sau này.
Top