Nhờ trợ giúp khi đưa macro lên thanh Ribbon

Liên hệ QC

namvu230397

Thành viên hoạt động
Tham gia
12/10/21
Bài viết
173
Được thích
77
Nghề nghiệp
Kỹ sư công trình giao thông
Chào mọi người ạ,
Gần đây em có tập tành viết VBA, cũng đã viết được vài chương trình đơn giản. Em có ý định đưa những chương trình này lên thanh ribbon để dùng cho nhiều lần sau. Nhưng sau khi cho lên thanh ribbon để lưu thành addin thì code không chạy, những code đó import vào file thì vẫn chạy bình thường. Cho em hỏi là tại sao lại vậy và có cách khắc phục không? Em có để một số sub trong file đính kèm, các bác xem rồi cho em xin ý kiến ạ
 

File đính kèm

  • Ribbon_GOC.xlsm
    31 KB · Đọc: 14
Không biết đúng ý không?
 

File đính kèm

  • Ribbon_GOC.xlsm
    29.3 KB · Đọc: 13
Không biết đúng ý không?
Ý e là tại sao khi chạy sub trên file đó thì vẫn chạy bình thường, nhưng khi chuyển thành dạng addin để dùng cho file khác thì nó báo lỗi và dừng ngay. dù sao thì cũng cảm ơn bác đã phản hồi dù chưa đúng ý
 
Chổ nào của bạn là ThisWorkbook thì sửa lại là ActiveWorkbook thử xem vấn đề có cải thiện hay không?
 
cái ribbon Phú Vinh VBA ấy ạ, e có chạy thử trên chính file gốc thì nó chạy bình thường, nhưng chạy cho một file mới tinh thì không chạy được
Trong file không có cái ribbon nào, cũng không thấy cái VBA Phú Vinh nào. Chỉ có 3 cái form cùng 3 cái macro liên quan trong 1 module. Muốn chạy 3 cái macro đó phải gán cho 1 cái công cụ (control) ribbon nào đó. Còn muốn nó chạy khơi khơi thì lập cho mỗi cái 1 macro gọi:
Rich (BB code):
Sub txt()
    Dim xyz As control
    Call tonghop(xyz)
End Sub
1634035176558.png
 
Lần chỉnh sửa cuối:
Trong file không có cái ribbon nào, cũng không thấy cái VBA Phú Vinh nào. Chỉ có 3 cái form cùng 3 cái macro liên quan trong 1 module. Hết!
View attachment 267595
à ribbon e làm ở bên ngoài bằng code xml ấy, 3 cái macro kia chỉ để gọi nó lên ribbon thôi. cái chính e muốn hỏi là sao code chỉ chạy được trên chính cái file xml này, khi chuyển sang addin để dùng cho file khác thì lại không được
Bài đã được tự động gộp:

Chổ nào của bạn là ThisWorkbook thì sửa lại là ActiveWorkbook thử xem vấn đề có cải thiện hay không?
e cũng để ý rồi cái code nào có dính đến cái workbook thì k chạy được khi sang file khác. để tối e sửa lại xem sao
 
Ribbon tạo bằng xml thì bạn làm ra add-ins bằng cách nào? Tôi thì chưa thấy cái công cụ nào mà cứ hỏi khơi khơi
 
vấn đề e muốn hỏi không liên quan đến vấn đề làm ribbon. mà cái e muốn hỏi là tại sao code e viết ra chạy trên cái file xlsm mà e đã ghim thì chạy bình thường. nhưng khi e cho lên thanh ribbon mục đich để dùng cho những lần sau mà không cần phải add code vào nữa mà dùng được luôn thì không chạy được. bác hiểu ý e chưa?
 
vấn đề e muốn hỏi không liên quan đến vấn đề làm ribbon. mà cái e muốn hỏi là tại sao code e viết ra chạy trên cái file xlsm mà e đã ghim thì chạy bình thường. nhưng khi e cho lên thanh ribbon mục đich để dùng cho những lần sau mà không cần phải add code vào nữa mà dùng được luôn thì không chạy được. bác hiểu ý e chưa?
Mỗi công cụ của ribbon phải gắn với 1 macro đúng tên khi tạo code trên xml thì nó mới chạy.

Gì tôi cũng hiểu, chỉ có cái file không có gì để test mà hỏi vậy thì tôi không cách chi hiểu được.
 
vấn đề e muốn hỏi không liên quan đến vấn đề làm ribbon. mà cái e muốn hỏi là tại sao code e viết ra chạy trên cái file xlsm mà e đã ghim thì chạy bình thường. nhưng khi e cho lên thanh ribbon mục đich để dùng cho những lần sau mà không cần phải add code vào nữa mà dùng được luôn thì không chạy được. bác hiểu ý e chưa?
Hiểu ý hay không chưa bàn tới. Nếu đã khẳng định là có làm ribbon "bằng code xml ấy" thì hãy đính kèm tập tin có "bằng code xml ấy". Trong tập tin đã đính kèm làm quái gì có XML mà cứ chầy cối mất thời gian.

Còn nếu khẳng định là không liên quan tới ribbon, không muốn tiết lộ bí mật ribbon thì tại sao lại
cái ribbon Phú Vinh VBA ấy ạ

Làm quái gì có ribbon Phú Vinh mà viết thế để người khác tìm mỏi mắt.
 
Lần chỉnh sửa cuối:
Hình như lại gặp người 2uen xưa rồi
 

File đính kèm

  • 10-05.jpg
    10-05.jpg
    65.5 KB · Đọc: 26
Hiểu ý hay không chưa bàn tới. Nếu đã khẳng định là có làm ribbon "bằng code xml ấy" thì hãy đính kèm tập tin có "bằng code xml ấy". Trong tập tin đã đính kèm làm quái gì có XML mà cứ chầy cối mất thời gian.

Còn nếu khẳng định là không liên quan tới ribbon, không muốn tiết lộ bí mật ribbon thì tại sao lại


Làm quái gì có ribbon Phú Vinh mà viết thế để người khác tìm mỏi mắt.

Mỗi công cụ của ribbon phải gắn với 1 macro đúng tên khi tạo code trên xml thì nó mới chạy.

Gì tôi cũng hiểu, chỉ có cái file không có gì để test mà hỏi vậy thì tôi không cách chi hiểu được.
thôi, bỏ qua những thứ không liên quan, e hỏi cụ thể luôn. cái nút gộp file của e ý e làm nó kiểu chọn thư mục chứa các file cần gộp, chọn định dạng file, ấn sao chép là nó sẽ copy từng sheet trong từng file đó và dán vào một file trống (tạm gọi là file tổng hợp). khi chạy sub này trên đúng file mà e đã ghim ấy thì nó chạy được, nhưng khi chuyển sang file xlam để chạy trên một file mới tinh thì nó báo lỗi và dừng sub. nếu bác biết lỗi của nó thì chỉ giúp e để e khắc phục chứ không biết tại sao
 
Đọc cả đống câu chả có một ký tự viết hoa để chấm câu. Chưa kể e ấp tùm lum.
Quý vị cũng siêng đọc hiểu cho được. Tôi thì chịu.
 
Đọc cả đống câu chả có một ký tự viết hoa để chấm câu. Chưa kể e ấp tùm lum.
Quý vị cũng siêng đọc hiểu cho được. Tôi thì chịu.
bác có cần bắt bẻ từng cái dấu câu, từng con chữ như chủ đầu tư bắt bẻ tư vấn vậy không. còn xưng e cho lịch sự thôi mà, các bác đi trước, e vào sau nên tôn trọng người vào trước. còn chỗ nào e viết còn tối nghĩa thì e cũng đã giải thích rõ rồi, các bác có cần khắt khe quá vậy không?
 
vấn đề e muốn hỏi không liên quan đến vấn đề làm ribbon. mà cái e muốn hỏi là tại sao code e viết ra chạy trên cái file xlsm mà e đã ghim thì chạy bình thường. nhưng khi e cho lên thanh ribbon mục đich để dùng cho những lần sau mà không cần phải add code vào nữa mà dùng được luôn thì không chạy được. bác hiểu ý e chưa?
khi bạn muốn tạo thành add in thì khi code bạn phải chỉ dẫn đến Workbook và Sheet cụ thể, không được code tắt. Ví dụ đoạn này:
lr = Range(txt_coc & Rows.Count).End(xlUp).Row, bạn phải sửa lại thành
lr = ActiveSheet.Range(txt_coc & ActiveSheet.Rows.Count).End(xlUp).Row
 
bác có cần bắt bẻ từng cái dấu câu, từng con chữ như chủ đầu tư bắt bẻ tư vấn vậy không. còn xưng e cho lịch sự thôi mà, các bác đi trước, e vào sau nên tôn trọng người vào trước. còn chỗ nào e viết còn tối nghĩa thì e cũng đã giải thích rõ rồi, các bác có cần khắt khe quá vậy không?
Nếu tôi nói "cần" thì sao?

Người có vấn đề muốn hỏi thì cần bình tĩnh. Xem xét kỹ lại vấn đề của mình. Trình bày vấn đề lên bằng cách nói chuyện khách quan. Khách quan có nghĩa là phải biết rằng có những cách nói chuyện mà bạn bè hiểu nhưng người khác không hiểu.

Bằng chứng là cho đã mười mấy lượt trao đổi mà có ai giúp nổi bạn đâu?

Mặt khác:
Trong giao tiếp, viết tắt chỉ giành cho người cùng lứa. Với người không quen biết mà dùng thể văn này là klems lịch sự.
Trong văn, ít nhất là văn tiếng Việt, dấu chấm là dứt câu. Sau dấu chấm là mở câu mới. Mở câu mới thì viết hoa. Luật này đâu phải để buộc người viết phải nhấn phím 'shift'. Người đọc nhờ vào ký tự viết hoa đầu câu để phân đoạn ý tưởng. Nhất là trên màn hình, không có ký tự viết hoa đầu câu thì mỗi lần thấy dấu chấm, người đọc phải suy luận xem dấu chấm ấy thực sự là để ohaan cách câu hay do gõ nhầm?

Viết bài hỏi mà không nghĩ đến người đọc, tức những người có thể giúp mình, là tư cách chủ quan, chỉ biết mình.
 
Web KT
Back
Top Bottom