Cách sử dụng và lưu trữ các hàm tùy chỉnh trong Excel

  • Chia Sẻ Cái Này
Michael Brown

Hôm nay chúng ta sẽ tiếp tục khám phá các hàm Excel tùy chỉnh. Vì bạn đã biết cách tạo UDF (và tôi hy vọng bạn cũng đã thử áp dụng chúng trong Excel của mình), hãy tìm hiểu sâu hơn một chút và tìm hiểu cách sử dụng cũng như lưu trữ các hàm do người dùng xác định trong Excel.

Hơn nữa, chúng tôi sẽ chỉ cho bạn cách dễ dàng lưu các hàm của bạn trong tệp bổ trợ Excel để sử dụng chúng sau này chỉ với một vài cú nhấp chuột.

Vì vậy, đây là nội dung chúng ta sẽ nói về:

    Các cách khác nhau để sử dụng UDF trong Excel

    Sử dụng UDF trong trang tính

    Sau khi bạn đã xác minh rằng UDF của mình đang hoạt động bình thường, bạn có thể sử dụng chúng trong Excel công thức hoặc trong mã VBA.

    Bạn có thể áp dụng các hàm tùy chỉnh trong sổ làm việc Excel giống như cách bạn sử dụng các hàm thông thường. Ví dụ: chỉ cần viết vào một ô công thức bên dưới:

    = GetMaxBetween(A1:A6,10,50)

    UDF có thể được sử dụng kết hợp với các hàm thông thường. Ví dụ: thêm văn bản vào giá trị tối đa đã tính:

    = CONCATENATE("Maximum value between 10 and 50 is ", GetMaxBetween(A1: A6,10,50))

    Bạn có thể xem kết quả trong ảnh chụp màn hình bên dưới:

    Bạn có thể tìm số vừa lớn nhất vừa nằm trong phạm vi từ 10 đến 50.

    Hãy kiểm tra một công thức khác:

    = INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), the

    Hàm tùy chỉnh GetMaxBetween kiểm tra phạm vi B2:B9 và tìm số lượng lớn nhất trong khoảng từ 10 đến 50. Sau đó, sử dụng INDEX + MATCH, chúng tôi nhận được tên sản phẩm khớp với giá trị tối đa này:

    Bạn có thể thấy, cách sử dụng các hàm tùy chỉnh không quá khác biệt so với Excel thông thườnghàm.

    Khi thực hiện việc này, hãy nhớ rằng hàm do người dùng xác định chỉ có thể trả về giá trị chứ không thể thực hiện bất kỳ hành động nào khác. Đọc thêm về các hạn chế của hàm do người dùng xác định.

    Sử dụng UDF trong các thủ tục và hàm VBA

    UDF cũng có thể được sử dụng trong macro VBA. Bên dưới, bạn có thể thấy mã macro tìm kiếm giá trị lớn nhất trong phạm vi từ 10 đến 50 trong cột chứa ô hiện hoạt.

    Sub MacroWithUDF() Dim Rng As Range, maxcase, i As Long With ActiveSheet.Range( Ô(ActiveCell.CurrentRegion.Row, ActiveCell.Column), Ô(ActiveCell.CurrentRegion.Rows.Count _ + ActiveCell.CurrentRegion.Row - 1, ActiveCell.Column)) maxcase = GetMaxBetween(.Cells, 10, 50) i = Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End With End Sub

    Mã macro chứa hàm tùy chỉnh

    GetMaxBetween(.Cells, 10, 50)

    Nó tìm giá trị lớn nhất trong cột hiện hoạt. Giá trị này sẽ được đánh dấu sau đó. Bạn có thể xem kết quả của macro trong ảnh chụp màn hình bên dưới.

    Một chức năng tùy chỉnh cũng có thể được sử dụng bên trong một chức năng tùy chỉnh khác. Trước đó trong blog của mình, chúng ta đã xem xét vấn đề chuyển đổi một số thành văn bản bằng cách sử dụng hàm tùy chỉnh có tên Số chính tả .

    Với sự trợ giúp của hàm này, chúng ta có thể nhận được giá trị tối đa từ phạm vi và ngay lập tức viết nó dưới dạng văn bản.

    Để làm điều này, chúng tôi sẽ tạo một chức năng tùy chỉnh mới trong đó chúng tôi sẽ sử dụng các chức năng GetMaxBetween SpellNumber đã quen thuộc với chúng ta.

    Hàm SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween (rngCells, MinNum, MaxNum)) End Hàm

    Như bạn có thể thấy, hàm GetMaxBetween là một đối số cho một hàm tùy chỉnh khác, SpellNumber . Nó xác định giá trị tối đa, như chúng ta đã làm nhiều lần trước đây. Số này sau đó được chuyển đổi thành văn bản.

    Trong ảnh chụp màn hình ở trên, bạn có thể thấy cách hàm SpellGetMaxBetween tìm số tối đa trong khoảng từ 100 đến 500 và sau đó chuyển đổi nó thành văn bản.

    Gọi UDF từ sổ làm việc khác

    Nếu bạn đã tạo UDF trong sổ làm việc của mình, thật không may, điều này không có nghĩa là bạn sẽ không gặp phải bất kỳ sự cố nào.

    Theo kinh nghiệm của tôi, hầu hết người dùng sớm hay muộn đều tạo bộ sưu tập macro và hàm tùy chỉnh cá nhân của họ để tự động hóa các quy trình và phép tính riêng lẻ. Và ở đây nảy sinh vấn đề - mã của các hàm do người dùng xác định trong Visual Basic cần được lưu trữ ở đâu đó để sử dụng sau này trong công việc.

    Để áp dụng hàm tùy chỉnh, sổ làm việc nơi bạn lưu nó phải được mở trong Excel của bạn. Nếu không, bạn sẽ nhận được lỗi #NAME! lỗi khi cố gắng sử dụng nó. Lỗi này cho biết rằng Excel không biết tên của hàm mà bạn muốn sử dụng trong công thức.

    Hãy xem các cách trongmà bạn có thể sử dụng các hàm tùy chỉnh mà bạn tạo.

    Phương pháp 1. Thêm tên sổ làm việc vào hàm

    Bạn có thể chỉ định tên của sổ làm việc chứa nó trước tên của hàm số. Ví dụ: nếu bạn đã lưu hàm tùy chỉnh GetMaxBetween() trong sổ làm việc có tên My_Functions.xlsm thì bạn phải nhập công thức sau:

    = My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)

    Phương pháp 2. Lưu trữ tất cả các UDF trong một tệp chung

    Lưu tất cả các chức năng tùy chỉnh trong một sổ làm việc đặc biệt (ví dụ: My_Functions.xlsm ) và sao chép chức năng mong muốn từ sổ làm việc đó vào sổ làm việc hiện tại, nếu cần.

    Mỗi khi bạn tạo một chức năng tùy chỉnh mới, bạn cần sao chép mã của nó trong sổ làm việc mà bạn sẽ sử dụng nó. Với phương pháp này, một số bất tiện có thể phát sinh:

    • Nếu có nhiều tệp đang hoạt động và chức năng cần thiết ở mọi nơi, thì mã sẽ phải được sao chép vào từng cuốn sách.
    • Hãy nhớ lưu sổ làm việc ở định dạng hỗ trợ macro (.xlsm hoặc .xlsb).
    • Khi mở một tệp như vậy, tính năng bảo vệ chống lại macro sẽ hiển thị cảnh báo mỗi lần và phải xác nhận cảnh báo này. Nhiều người dùng sợ hãi khi nhìn thấy cảnh báo thanh màu vàng yêu cầu họ bật macro. Để tránh nhìn thấy thông báo này, bạn cần tắt hoàn toàn tính năng bảo vệ của Excel. Tuy nhiên, điều này có thể không phải lúc nào cũng chính xác và an toàn.

    Tôi nghĩ bạn sẽ đồng ý với tôi rằng lúc nào cũng mở mộtvà sao chép mã của các hàm do người dùng xác định từ nó hoặc viết tên của tệp này trong công thức không phải là giải pháp tốt nhất. do đó, chúng tôi đã tìm đến cách thứ ba.

    Phương pháp 3. Tạo tệp bổ trợ Excel

    Tôi nghĩ cách tốt nhất là lưu trữ các hàm tùy chỉnh được sử dụng thường xuyên trong tệp bổ trợ Excel . Ưu điểm của việc sử dụng phần bổ trợ:

    • Bạn chỉ cần kết nối phần bổ trợ với Excel một lần. Sau đó, bạn có thể sử dụng các thủ tục và chức năng của nó trong bất kỳ tệp nào trên máy tính này. Bạn không cần phải lưu sổ làm việc của mình ở định dạng .xlsm và .xlsb vì mã nguồn sẽ không được lưu trữ trong chúng mà nằm trong tệp bổ trợ.
    • Bạn sẽ không còn bị làm phiền bởi tính năng bảo vệ macro nữa vì phần bổ trợ luôn đề cập đến các nguồn đáng tin cậy.
    • Phần bổ trợ là một tệp riêng biệt. Thật dễ dàng để chuyển nó từ máy tính này sang máy tính khác, để chia sẻ nó với đồng nghiệp.

    Chúng ta sẽ nói thêm về cách tạo và sử dụng tiện ích bổ sung sau.

    Sử dụng tiện ích bổ sung- ins để lưu trữ các chức năng tùy chỉnh

    Tôi làm cách nào để tạo phần bổ trợ của riêng mình? Hãy thực hiện quy trình này từng bước.

    Bước 1. Tạo tệp bổ trợ

    Mở Microsoft Excel, tạo sổ làm việc mới và lưu sổ làm việc đó dưới bất kỳ tên phù hợp nào (ví dụ: My_Functions) ở định dạng bổ trợ. Để thực hiện việc này, hãy sử dụng menu Tệp - Lưu dưới dạng hoặc phím F12. Đảm bảo chỉ định loại tệp Phần bổ trợ Excel :

    Phần bổ trợ của bạn sẽ có phần mở rộng .xlam.

    Mẹo. Xin lưu ý rằngtheo mặc định, Excel lưu trữ phần bổ trợ trong thư mục C:\Users\[Your_Name]\AppData\Roaming\Microsoft\AddIns . Tôi khuyên bạn nên chấp nhận vị trí mặc định. Nếu muốn, bạn có thể chỉ định bất kỳ thư mục nào khác. Nhưng sau đó, khi kết nối bổ trợ, bạn sẽ cần tìm và chỉ định vị trí mới của nó theo cách thủ công. Nếu bạn lưu nó trong thư mục mặc định, bạn không cần phải tìm tiện ích bổ sung trên máy tính của mình. Excel sẽ tự động liệt kê nó.

    Bước 2. Kết nối tệp bổ trợ

    Bây giờ, bổ trợ chúng tôi đã tạo cần được kết nối với Excel. Sau đó, nó sẽ được tải tự động khi chương trình bắt đầu. Để thực hiện việc này, sử dụng menu Tệp - Tùy chọn - Phần bổ trợ . Đảm bảo rằng Phần bổ trợ Excel được chọn trong trường Quản lý . Nhấp vào nút Go ở cuối cửa sổ. Trong cửa sổ xuất hiện, đánh dấu bổ trợ My_Functions của chúng tôi. Nếu bạn không thấy nó trong danh sách, hãy nhấp vào nút Duyệt qua và duyệt đến vị trí tệp bổ trợ của bạn.

    Nếu bạn đang sử dụng phần bổ trợ để lưu trữ các chức năng tùy chỉnh, có một quy tắc đơn giản để tuân theo. Nếu bạn đang chuyển sổ làm việc cho người khác, hãy đảm bảo cũng chuyển một bản sao của phần bổ trợ có chứa chức năng bạn muốn. Họ nên kết nối nó theo cách giống như bạn đã làm bây giờ.

    Bước 3. Thêm các hàm và macro tùy chỉnh vào phần bổ trợ

    Phần bổ trợ của chúng tôi được kết nối với Excel, nhưng nó không kết nối không có bất kỳ chức năngnhưng. Để thêm các UDF mới vào nó, hãy mở Visual Basic Editor bằng cách nhấn Alt + F11 . Sau đó, bạn có thể thêm các mô-đun mới bằng mã VBA như được mô tả trong hướng dẫn Tạo UDF của tôi.

    Chọn tệp bổ trợ của bạn ( My_Finctions.xlam ) trong cửa sổ VBAProject. Sử dụng menu Chèn - Mô-đun để thêm mô-đun tùy chỉnh. Bạn cần viết các hàm tùy chỉnh vào đó.

    Bạn có thể nhập mã của hàm do người dùng xác định theo cách thủ công hoặc sao chép từ đâu đó.

    Chỉ vậy thôi. Bây giờ bạn đã tạo phần bổ trợ của riêng mình, thêm nó vào Excel và bạn có thể sử dụng UDF trong đó. Nếu bạn muốn sử dụng nhiều UDF hơn, chỉ cần viết mã trong mô-đun bổ trợ trong trình chỉnh sửa VBA và lưu mã.

    Hôm nay là vậy. Chúng ta đã học cách sử dụng các hàm do người dùng xác định trong sổ làm việc của bạn. Chúng tôi thực sự hy vọng bạn thấy những hướng dẫn này hữu ích. Nếu bạn có bất kỳ câu hỏi nào, hãy viết trong phần nhận xét cho bài viết này.

    Michael Brown là một người đam mê công nghệ chuyên dụng với niềm đam mê đơn giản hóa các quy trình phức tạp bằng các công cụ phần mềm. Với hơn một thập kỷ kinh nghiệm trong ngành công nghệ, anh ấy đã trau dồi kỹ năng của mình trong Microsoft Excel và Outlook, cũng như Google Trang tính và Tài liệu. Blog của Michael dành để chia sẻ kiến ​​thức và chuyên môn của anh ấy với những người khác, cung cấp các mẹo và hướng dẫn dễ thực hiện để cải thiện năng suất và hiệu quả. Cho dù bạn là một chuyên gia dày dạn kinh nghiệm hay người mới bắt đầu, blog của Michael đều cung cấp những hiểu biết có giá trị và lời khuyên thiết thực để tận dụng tối đa những công cụ phần mềm thiết yếu này.