Add ins không chạy khi nạp vào thư viện

Liên hệ QC

hoangdanh282vn

Nguyễn Cảnh Hoàng Danh
Thành viên danh dự
Tham gia
21/12/07
Bài viết
1,900
Được thích
5,277
Nghề nghiệp
Kinh doanh các mặt hàng văn phòng phẩm
Em có Function như Sau :
PHP:
Function Sumf(Rng As Range, Optional Opt As Boolean = True) As Double
Dim Cell As Range
For Each Cell In Rng
If Cell.HasFormula = Opt Then Sumf = Sumf + Cell
Next
End Function

Khi nó nằm trong module của 1 file nào đó thì nó chạy tốt.
Nhưng khi cho nó vào trong thư viện add ins (*.xla) thì file cứng đờ luôn. Không biết là còn mắc lỗi gì trong Function không nữa.
Em có down mấy add ins trên diễn đàn cũng bị tương tự . Các bạn giúp mình cách khắc phục nha.
 
Em có Function như Sau :
PHP:
Function Sumf(Rng As Range, Optional Opt As Boolean = True) As Double
Dim Cell As Range
For Each Cell In Rng
If Cell.HasFormula = Opt Then Sumf = Sumf + Cell
Next
End Function
Khi nó nằm trong module của 1 file nào đó thì nó chạy tốt.
Nhưng khi cho nó vào trong thư viện add ins (*.xla) thì file cứng đờ luôn. Không biết là còn mắc lỗi gì trong Function không nữa.
Em có down mấy add ins trên diễn đàn cũng bị tương tự . Các bạn giúp mình cách khắc phục nha.
Em chép .xla vào đây thử nó có chạy không, Excel 2003.
C:\Program Files\Microsoft Office\OFFICE11\XLSTART
 
Upvote 0
Nếu không nhầm thì tại cái tên hàm Sumf có vấn đề, bạn thử đổi thành 1 cái tên khác đi xem sao, ví dụ là xSumf xem sao, phải chăng Sumf là tên nhạy cảm//**/
 
Upvote 0
Em có Function như Sau :
PHP:
Function Sumf(Rng As Range, Optional Opt As Boolean = True) As Double
Dim Cell As Range
For Each Cell In Rng
If Cell.HasFormula = Opt Then Sumf = Sumf + Cell
Next
End Function

Khi nó nằm trong module của 1 file nào đó thì nó chạy tốt.
Nhưng khi cho nó vào trong thư viện add ins (*.xla) thì file cứng đờ luôn. Không biết là còn mắc lỗi gì trong Function không nữa.
Em có down mấy add ins trên diễn đàn cũng bị tương tự . Các bạn giúp mình cách khắc phục nha.

Đổi thành thế này chắc được

PHP:
Function Sumf(Rng As Range, Optional Opt As Boolean = True) As Double
Dim Cell As Range, Tong As Double
 
For Each Cell In Rng
If Cell.HasFormula = Opt Then Tong = Tong + Cell
Next
Sumf = Tong
End Function

Tại sao thì bạn tự suy luận xem sao, chắc không khó
 
Upvote 0
Đổi thành thế này chắc được

PHP:
Function Sumf(Rng As Range, Optional Opt As Boolean = True) As Double
Dim Cell As Range, Tong As Double
 
For Each Cell In Rng
If Cell.HasFormula = Opt Then Tong = Tong + Cell
Next
Sumf = Tong
End Function
Tại sao thì bạn tự suy luận xem sao, chắc không khó
Chắc chắn được ở đây có nghĩa là bạn đã thử chạy ok rồi hay là bạn nghĩ là chắc chắn nó sẽ chạy? Bạn có thể gửi file lên không?
 
Upvote 0
Chắc chắn được ở đây có nghĩa là bạn đã thử chạy ok rồi hay là bạn nghĩ là chắc chắn nó sẽ chạy? Bạn có thể gửi file lên không?

Là chắc chắn được bạn ah, tôi đã thử

Nếu cần nữa thì nên thêm Public vào trước khai báo hàm

Public Function ......
 
Upvote 0
Là chắc chắn được bạn ah, tôi đã thử

Nếu cần nữa thì nên thêm Public vào trước khai báo hàm

Public Function ......
Tôi đã thử copy code của bạn về chạy mà nó vẫn không cho ra kết quả, bạn đã thử thì xin bạn gửi file Add-In đó lên cho tôi học hỏi chút không? Tôi chưa biết là file của tôi và file của bạn khác nhau như nào mà lại không được.

Cảm ơn!
 
Upvote 0
Tôi đã thử copy code của bạn về chạy mà nó vẫn không cho ra kết quả, bạn đã thử thì xin bạn gửi file Add-In đó lên cho tôi học hỏi chút không? Tôi chưa biết là file của tôi và file của bạn khác nhau như nào mà lại không được.

Cảm ơn!

Ok, gửi cho bạn nhé, file gửi kèm
Giống như thế.
Bạn nhớ lấy ví dụ gồm các ô:
Có các ô chứa công thức vd =10+90 và các ô là giá trị thôi như 40,...
Rồi áp dụng hàm -> hàm có tác dụng Opt=true thì cộng các giá trị ô có công thức trái lại thì ngược ...
 

File đính kèm

  • tinhham.zip
    6.4 KB · Đọc: 24
Lần chỉnh sửa cuối:
Upvote 0
Ok, gửi cho bạn nhé, file gửi kèm
Giống như thế.
Bạn nhớ lấy ví dụ gồm các ô:
Có các ô chứa công thức vd =10+90 và các ô là giá trị thôi như 40,...
Rồi áp dụng hàm -> hàm có tác dụng Opt=true thì cộng các giá trị ô có công thức trái lại thì ngược ...
Cảm ơn bạn, nhưng tôi dùng đúng theo hướng dẫn thì nó ra lỗi #Name?, máy của bạn mà được thì chắc do máy của tôi bị virus rồi. Để tôi quét virus cái xem sao.
 
Upvote 0
Cảm ơn bạn, nhưng tôi dùng đúng theo hướng dẫn thì nó ra lỗi #Name?, máy của bạn mà được thì chắc do máy của tôi bị virus rồi. Để tôi quét virus cái xem sao.


+ Insert \ Function ....

+ Chọn Userdefine --> xem có hàm Sumf không?

nếu không có -> chưa cộng vào

Tool \ Add Ins ...
 
Upvote 0
Trước khi em post bài lên thì em đã test lại với nhiều trường hợp khác nhau như Thay đổi tên hàm, thay đổi khai báo biến và gán kết quả cho biến, thay đổi trên 2 loại version office nhưng kết quả cũng y chang như nhau, add vào add ins thì excel cứng đờ, cho vào mục tự khởi động thì không chạy (#name?).
 
Lần chỉnh sửa cuối:
Upvote 0
Không biết là nó có dính đến Version và bản quyền hay không mà khi add vào thư viện thì máy báo lỗi. và restart lại excel luôn

Note1.jpg


Note2.jpg
 
Lần chỉnh sửa cuối:
Upvote 0
Mình không nghĩ vậy! Có thể phần mềm bị lỗi thôi!
Bạn thử gỡ bỏ rồi cài lại xem! Trên máy mình addin đó chạy rất tốt không hề có lỗi gì cả!
Thân.
 
Upvote 0
Mình không nghĩ vậy! Có thể phần mềm bị lỗi thôi!
Bạn thử gỡ bỏ rồi cài lại xem! Trên máy mình addin đó chạy rất tốt không hề có lỗi gì cả!
Thân.

Mình thao tác như thế này.

Do máy mình cài cùng lúc 2 phiên bản nên có lẽ thư viện add ins thuộc về anh 2007.

Khi soạn thảo code, xong lưu ra file dưới dạng xla (gồm cả 2003 và 2007). Đem add vào thư viện thì máy cứng đờ và báo lỗi như minh họa ở trên.

Đem file đó qua vài máy khác (OF2003) add vào cũng bị tương tự.

Theo mình nghĩ thì nếu như viết lại code trên trong OF2003, lưu lại và add vào thì sẽ bình thường. Thật khó hiểu.
 
Upvote 0
Có lẽ lổi nằm trên máy tính của Danh hay sao ấy! Chứ tôi thử trên máy tôi bình thường... Add-ins được hết
 
Upvote 0
Cái này đúng là khó hiểu, hôm qua tôi làm máy ở nhà thì để tên hàm khác Sumf thì chạy ngon, ví dụ như Sumx hoặc xSumf ..., hôm nay thử trên máy ở công ty thì tên hàm gì cũng chạy hết, máy ở nhà và máy ở công ty đều cài cùng 1 bản Office, và chỉ cài duy nhất Office2003. Tìm trên mạng cũng không thấy chỗ nào nói về vấn đề này.
 
Upvote 0
Cái này đúng là khó hiểu, hôm qua tôi làm máy ở nhà thì để tên hàm khác Sumf thì chạy ngon, ví dụ như Sumx hoặc xSumf ..., hôm nay thử trên máy ở công ty thì tên hàm gì cũng chạy hết, máy ở nhà và máy ở công ty đều cài cùng 1 bản Office, và chỉ cài duy nhất Office2003. Tìm trên mạng cũng không thấy chỗ nào nói về vấn đề này.

Có thể bạn đã có ADD Ins với hàm tên Sumf trước đó rồi

Mình thao tác như thế này.

Do máy mình cài cùng lúc 2 phiên bản nên có lẽ thư viện add ins thuộc về anh 2007.

Khi soạn thảo code, xong lưu ra file dưới dạng xla (gồm cả 2003 và 2007). Đem add vào thư viện thì máy cứng đờ và báo lỗi như minh họa ở trên.

Đem file đó qua vài máy khác (OF2003) add vào cũng bị tương tự.

Theo mình nghĩ thì nếu như viết lại code trên trong OF2003, lưu lại và add vào thì sẽ bình thường. Thật khó hiểu.


Máy tôi cũng cài hai phiên bản - khi cài v2007 thì chọn cài riêng
.
 
Upvote 0
sao add-in sensity và add-in tree plan cua em no doi pass la sao vay mấy anh chi,chi em voi
 
Upvote 0
Web KT
Back
Top Bottom