Tạo code in DS hàng loạt theo Slicer trong Pivot Table từ 1 đến hết (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Tôi tuân thủ nội quy khi đăng bài

minhphy

Thành viên mới
Tham gia
11/4/23
Bài viết
1
Được thích
0
Hiện nay tôi tạo được file in DS trong PivotTable có điều khiển bằng Slicer theo thứ tự lần lượt chọn trong Sheet: DSPT
Xin nhờ các ACE hướng dẫn cách in hàng loạt theo thứ tự từ 1 đến hết trong DS bảng chọn Slicer.
Xin cảm ơn!
 

File đính kèm

Xóa PivotTable7, sửa tên cột PT- T.Van-IN thành không dấu

Dùng code này

PHP:
Sub PrintPivot()
Dim n As Long
With Sheet1.PivotTables(1).PivotFields("PT- T.Van-IN")
    n = .PivotItems.Count
    For i = 1 To n
        [G1].Value = .PivotItems(i)
        .PivotItems(i).Visible = True
        For Each Item In .PivotItems
            If Item <> .PivotItems(i) Then Item.Visible = False
        Next
        ActiveSheet.PrintOut
        MsgBox "Phòng thi " & .PivotItems(i)
    Next
End With

End Sub
 

File đính kèm

Có 2 cách trỏ đến Pivot Field: index hoặc name

* index:
const indexPvFieldRef = 17 'column Q [PT- T.Văn-IN] count from column A
With Sheet1.PivotTables(1).PivotFields(indexPvFieldRef)

** name:
const sCellPvFieldRef = "Q3"
Dim strNamePvFieldRef as string
strNamePvFieldRef = Sheet2.Range(sCellPvFieldRef).value
With Sheet1.PivotTables(1).PivotFields(strNamePvFieldRef)
 
Có 2 cách trỏ đến Pivot Field: index hoặc name
Cách 1 dài dòng. Mà có khi Pivot table không lấy hết cột trong bảng chẳng hạn lấy từ cột C, nghĩa là phải đếm tay.
Cách 2 gọn:
Dim FieldName As String
FieldName = Sheet1.[Q1].Value

Cách bài 2 là cách ưa thích. Không thích tên sheet dài, tên field dài, tên file dài, không tích tên sheet, tên field, tên file có dấu tiếng Việt. Đặc biệt khi liên quan đến VBA.
 
Cách 1 dài dòng. Mà có khi Pivot table không lấy hết cột trong bảng chẳng hạn lấy từ cột C, nghĩa là phải đếm tay.
column(Q1) - column(C1) + 1
Khai báo 1 lần

Cách bài 2 là cách ưa thích. Không thích tên sheet dài, tên field dài, tên file dài, không tích tên sheet, tên field, tên file có dấu tiếng Việt. Đặc biệt khi liên quan đến VBA.
Hiện tại có rất nhiều doanh nghiệp FDI, dùng tiếng Hàn, Trung, Thái, Nhật... trong công việc, vậy nên không nên miễn cưỡng chuyển sang tiếng Anh, hoặc là quy định bắt buộc không được chuyển.
Lập trình như thế nào người dùng dễ tiếp cận nên ưu tiên. Ví dụ các ứng dụng AI bây giờ, hỏi là ngôn ngữ gì thì kết quả mặc định là ngôn ngữ đó, trừ phi yêu cầu chỉ định kết quả là ngôn ngữ gì.

1743501643465.png
 
Lập trình như thế nào người dùng dễ tiếp cận nên ưu tiên. Ví dụ các ứng dụng AI bây giờ, hỏi là ngôn ngữ gì thì kết quả mặc định là ngôn ngữ đó, trừ phi yêu cầu chỉ định kết quả là ngôn ngữ gì.
Mình thì không thông minh như mấy cái AI. Bất đắc dĩ tiếng Nhật, Hàn, ... thì dùng cách thứ 2. Còn nếu tiếng Việt thì lại thích xử lý cái gốc sinh ra lỗi của VBA. À mà cái thích này có khi lại chẳng hay (hoặc là ghét) đối với nhiều người dùng hiện tại. Thôi thì trước tiên là làm theo sự ưa thích, sau đó có người khác sửa. Hoặc phân trần này nọ thì chuyển sang cách 2.
 
Vụ này em nói tới nhiều lần rồi. Đây không phải là lỗi gì cả.
Anh dùng Office phiên bản tiếng Anh thì mặc nhiên nó (VBA) không hỗ trợ gõ chữ tiếng Việt.
Tiếc rằng thị trường VN nhỏ bé, và/ hoặc không lên tiếng để MS phát hành phiên bản tiếng Việt, khi ấy gõ tiếng Việt trong VBA ầm ầm.
Các phiên bản Office tiếng Trung, Nhật, Hàn... gõ chữ ngôn ngữ của họ trong VBA hoàn toàn bình thường (tên biến, function, sub, comment....)
 
Vụ này em nói tới nhiều lần rồi. Đây không phải là lỗi gì cả.
Ừ thì không phải lỗi VBA. Ký tự tiếng Việt có dấu chỉ hiển thị dấu hỏi (?) trong VBA, và thấy ghét. Tôi cứ thích phiên bản tiếng Anh, GPE tôi cũng để tiếng Anh, Skype, Zalo, Facebook, tất tần tật đều chọn tiếng Anh.
 
Web KT

Bài viết mới nhất

Back
Top Bottom