HKNHKN
HKNHKN
Thảo luận 7 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 255 lượt xem

Chạy đoạn Code sau bị lỗi

Chạy đoạn Code sau bị lỗi:


Thảo luận 7 câu trả lời
Lượt xem 255 lượt xem
Vỗ tay vỗ tay
HKNHKN 13:08 - Aug 25, 2020

Rất mong Thầy hỗ trợ.

Vỗ tay vỗ tay
HKNHKN 15:08 - Aug 25, 2020

Chào bạn, mình không xem được nội dung đoạn code lỗi do ảnh nhỏ  và mờ. Bạn có thể xem phần hướng dẫn đính kèm (bên dưới khung chat) để đính kèm file hoặc ảnh cho rõ hơn nhé.

Vỗ tay vỗ tay
HKNHKN 16:08 - Aug 25, 2020

Thành thật xin lỗi Thầy.

Tôi bị lỗi:

VB: run-time error ‘1004’: Application-defined or object-defined error

Khi chạy đoạn code sau:


Sub ExportLossTree()


    Dim vItem As Long

    vItem = 3 'Vi du chon ModuleID la 3

    

    With ThisWorkbook.SlicerCaches("Slicer_ModuleID_Export")

        .ClearManualFilter

        .SlicerItems(3).Selected = True "Đây là đoạn bị lỗi

    End With

    

End Sub


Tôi tạo các Pivot Table từ mô hình Power Pivot. Tôi nghĩ hình như nó bị lỗi liên quan đến OLAP hay CUBE function.


Kính mong Thầy giúp đỡ.



Vỗ tay vỗ tay
HKNHKN 11:08 - Aug 27, 2020

Mình hiện chưa rõ mục đích của đoạn code này làm việc gì.

Theo nội  dung code thì hiện bạn đang muốn dùng VBA để điều khiển tự động chọn 1 đối tượng trong slicer, cụ thể là đối tượng thứ 3 trong danh sách các đối tượng bên trong 1 slicer có tên là Slicer_ModuleID_Export.

Lỗi có thể do nguyên nhân: slicer của bạn có ít hơn 3 đối tượng. Nên gặp lỗi khi chọn đối tượng thứ 3.

Bạn cần đếm số lượng item bên trong slicer này trước, xét trường hợp vitem có lớn hơn .SlicerItems.Count hay không (trước khi thực hiện việc chọn đối tượng)

Mình có test thử code này trên 1 pivot table sử dụng slicer nhiều hơn 3 đối tượng thì hoạt động bình thường.


Vỗ tay vỗ tay
HKNHKN 11:08 - Aug 27, 2020

Tôi có 6 cái máy, gọi là Module, có số từ 1 đến 6 (Ví dụ: Module 1 thì mã ID là 1, khi đó trên Slicer có Tiêu đề là Module, còn các lựa chọn sẽ là 1, 2, 3, 4, 5, 6). Muốn dùng VBA để điều khiển tự động chọn 1 đối tượng trong slicer (tức là chọn 1 máy) để xuất liệu từ Pivot Table (được tạo từ Data Model của Power Pivot, sử dụng Power Query để tạo dữ liệu cho Power Pivot).
Cũng tìm hiểu thông tin là nó khác với các Slicer được tạo từ bảng dữ liệu đơn thuần, nó gọi là OLAP hay CUBE Function. Do kiến thúc hạn chế nên tôi chưa hiểu được.
Mong Thầy giúp đỡ.

Vỗ tay vỗ tay
HKNHKN 13:08 - Aug 27, 2020

Phần nội dung câu hỏi của bạn hiện vượt ngoài phạm vi có thể hỗ trợ (do dùng power query, power pivot nên phương thức làm việc khác nhiều so với làm excel thuần túy kết hợp VBA).

Thông thường phương pháp làm việc là:

- Cách 1: Sử dụng VBA để gom dữ liệu từ nhiều file (nhiều nguồn) vào 1 file, sau đó xử lý dữ liệu trên 1 file đó.

- Cách 2: Sử dụng Power Query để kết nối dữ liệu, sau đó kết hợp power pivot để làm ra báo cáo.

Với cách thứ 2 thì thường không dùng VBA mà chỉ hoàn toàn dựa trên 2 bộ công cụ power query và power pivot thôi (hoặc lên power BI).

Sử dụng lập trình trong M-code (của power query) chứ không dùng VBA.

Do đó bạn có thể xem xét điều chỉnh lại phương pháp làm việc. Hiện hướng đi của bạn là theo hướng sử dụng power BI, không sử dụng nhiều tới VBA. Với hướng này thì bạn tìm hiểu về công cụ Power BI desktop, M-code sẽ tốt hơn.

Vỗ tay vỗ tay
HKNHKN 14:08 - Aug 27, 2020

Cảm ơn Thầy về định hướng xử lý dữ liệu.

Vỗ tay vỗ tay
Câu hỏi liên quan
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông