Mở Excel thông qua Access VBA (lỗi)
Tôi có đoạn mã VBA sau trong Access, dùng để mở một bảng tính Excel:
Private Sub cmd_UlAssess_Click()
Khi xảy ra lỗi, hãy chuyển đến hàm xử lý lỗi (err_Handler).
Dim xl As Object
Đặt xl = CreateObject("excel.application")
ws1 = "Đánh giá"
ws2 = "StockOrder"
ws3 = "Chú thích"
ws4 = "Hóa đơn"
strFile = txt_UlAssess
Nếu strFile = "" Hoặc IsNull(strFile) Thì
MsgBox "Bạn chưa chọn tệp đánh giá!", vbCritical, "Lỗi"
Me.txt_UlAssess.SetFocus
Chuyển đến trình xử lý thoát
Khác
Với cỡ XL
.Visible = True
.Workbooks.Open (strFile)
Nếu wb.Sheets(1).Name <> "Đánh giá" thì
MsgBox "Đây không phải là mẫu đánh giá hợp lệ!", vbCritical, "Lỗi"
Chuyển đến trình xử lý thoát
Kết thúc nếu
Kết thúc bằng
Kết thúc nếu
Vì lý do nào đó, nó báo lỗi khi đến dòng `.workbook.open (strFile)` - tôi đã thử nhiều cú pháp khác nhau, v.v., nhưng vẫn báo lỗi khi mở sổ làm việc. Tôi cũng nhớ rằng chức năng này đã từng hoạt động hoàn hảo trước đây và theo như tôi biết thì không có gì thay đổi. Thông báo lỗi như sau: Lỗi: -2147417851, phương thức 'Open' của đối tượng 'Workbooks' bị lỗi.
Có ai đó có thể giúp giải quyết vấn đề này không?
Cảm ơn trước!
Trả lời:
Giá trị của biến strFile là gì khi xảy ra lỗi?
Trả lời:
Tôi vừa kiểm tra mã của bạn và nó mở một bảng tính bình thường, vậy câu hỏi là nội dung của strFile là gì? >Bạn đang lấy nó từ điều khiển txt_UIAssess, vậy bạn có thể cho biết nội dung của điều khiển này là gì không?
Trả lời:
Giá trị là:
"C:\Users\PsyberFox\Documents\PsyberConsulting\Clients\PNPForms\ASSESMENT 23 02 2012.xls"
Trả lời:
Bạn có chắc chắn rằng có một bảng tính với đường dẫn và tên tệp chính xác như vậy không? Chỉ cần khác biệt một khoảng trắng cũng có thể gây ra lỗi.
Và nếu vậy, liệu tệp Excel đó có đang được mở sẵn trong Excel khi bạn chạy đoạn mã không?
Trả lời:
Chắc chắn 100% - chương trình mở được tệp bảng tính, và ngay sau khi mở xong, nó báo lỗi như đã nêu ở trên...
Vậy là, nó tìm thấy tập tin bài tập và thậm chí mở nó ra bình thường, nhưng sau đó lại bị lỗi...
Trả lời:
Điều gì sẽ xảy ra nếu bạn thay đổi dòng đó?
.Workbooks.Open (strFile)
ĐẾN
Đặt wb = .Workbooks.Open(strFile)
Trả lời:
Sau đó tôi nhận được lỗi sau:
Lỗi: -214747851 Lỗi tự động hóa. Máy chủ đã ném ra một ngoại lệ.
Trả lời:
Có vẻ như Access gặp sự cố khi giao tiếp với Excel. Tôi e rằng tôi không thể giúp bạn về vấn đề này - hy vọng rằng người khác sẽ có thể giúp bạn. Xin lỗi!
Comments
Post a Comment