PDA

View Full Version : Hỏi về EXCEL ...



bkxd98
18-06-2003, 23:13
1/ Làm sao để xem file *.xla của EXCEL ?
2/ Làm sao để tạo 1 function nội suy theo cả hàng và cột để dùng trong EXCEL ?
(trong excel chỉ có các hàm nội suy theo hàng hay cột)
Thanks.

nganha
19-06-2003, 19:30
File *.xla thực chất chứa các hàm do người sử dụng tự viết thêm bằng ngôn ngữ VBA (Visual Basic for Application) để bổ sung thêm các hàm cho Excel. VBA chứa một tập con các lệnh của ngôn ngữ lập trình VB và hình như được hỗ trợ đầy đủ trong Excel từ phiên bản Excel 97 thì phải. Các hàm này được chứa trong các module.
Để chuyển từ Excel sang VB Editor (VBE), bạn hãy nhấn menu Tools--> Macro--> Visual Basic Editor hay Alt+F11.
Để xem nội dung của các module trong file xyz.xla thì bạn hãy nạp (Load) file xyz.xla nếu nó không được load khi Excel khởi động, chuyển từ Excel sang VBE, chọn xyz.xla trong của sổ Project (VBA Project). Nếu của sổ Project chưa xuất hiện thì nhấn menu View-->Project Explorer hay Ctrl+R.
Tuy nhiên nếu file xla được bảo vệ bằng mật khẩu thì bạn sẽ không thể xem nội dung (Code) của module cũng như của Microsoft Excel Objects/Forms/Class Module (Nếu có) trừ khi bạn biết mật khẩu.
Bạn có thể tạo file *.xla của bạn bằng cách mở một workbook mới, chuyển sang VBE, thêm một vài module, viết mã cho các hàm chứa trong các module và lưu lại dưới dạng Microsoft Excel Add-In(*.xla) trong hộp thoại Save As vào thư mục ..\Program Files\Microsoft Office\Office\Library (Nếu sử dụng Office 97) hay ..\Program Files\Microsoft Office\Office10\Library (Nếu sử dụng Office 10).
Để bổ sung/loại bỏ các hàm bổ sung thì bạn phải quay trở lại Excel và chọn Tools-->Add-Ins để chọn hay bỏ chọn các item trong danh mục Add-Ins Available.
Câu hỏi thứ hai của bạn là hàm nội suy theo dòng và cột. Theo tôi bạn phải viết hàm bổ sung có chứa hai tham số dạng như sau:
Public Function Abc (ByVal Param1 As Variant, ByVal Param2 As Variant) As Variant
Select Case Param1
Case a1'Giá trị a1 của Param1
Select Case Param2
Case b1'Giá trị b1 của Param2
m=...
'Code
Case bn
'Code
End Select
Case a2
'Code
'...
End Select
Abc=m
End Function
Do bạn không nói rõ ràng nên tôi chưa thể giúp bạn được. Nếu cần thiết hãy mail cho tôi, nói rõ công việc cần thiết, tôi sẽ có thể viết hộ bạn hàm đó hoặc chuyển câu hỏi sang Box VB đi.