Excel - Chế độ xem tùy chỉnh/Truy vấn macro
Xin chào,
Tôi có một bảng với 150 cột chứa tên bác sĩ kèm dữ liệu. Tôi đã tạo các chế độ xem tùy chỉnh cho mỗi bác sĩ để chỉ hiển thị dữ liệu của họ từng người một. Có mã VBA nào cho phép tôi xuất mỗi chế độ xem tùy chỉnh đó ra một trang tính hoặc thậm chí là một sổ làm việc riêng biệt không? Chúng tôi cần gửi thông tin cho từng bác sĩ một cách riêng lẻ, việc này tốn rất nhiều thời gian vì phải duyệt qua 150 chế độ xem tùy chỉnh rồi sao chép thông tin đó vào một trang tính khác. Nếu ai đó có thể giúp đỡ, tôi sẽ vô cùng biết ơn.
Ví dụ về bảng:
Tiến sĩ 1 |
Tiến sĩ 2 |
Tiến sĩ 3 |
Tiến sĩ 4 |
Tiến sĩ 5 |
|
Phí |
211 |
0 |
4554678 |
1567 |
5786 |
Thuế |
4521 |
455 |
5 |
1535 |
0 |
tích lũy |
12452 |
453 |
7867 |
453456 |
0 |
Phí |
424 |
8767 |
4546786 |
17867 |
0 |
Thuế |
5654 |
0 |
6 |
12 |
78625378 |
tích lũy |
21 |
0 |
6587678 |
0 |
786 |
Trả lời:
Trả lời: Về việc in các chế độ xem tùy chỉnh Đoạn mã sau hoạt động tốt với tôi trên XL2010.
Tôi thực sự khuyên bạn nên thử đi qua nó vài lần. Để xem nó hoạt động như thế nào trước khi lãng phí 150 tờ giấy. '--- Sub PrintCustomViews()
'Chẳng còn gì để mất - Tháng 7 năm 2021'
Khi xảy ra lỗi, hãy chuyển đến NO_VIEW
Dim Cvw As Excel.CustomView
Ứng dụng.Màn hình cập nhật = Sai
Đối với mỗi Cvw trong ThisWorkbook.CustomViews
Ứng dụng.StatusBar = Cvw.Name
Cvw.Show
Excel.Select.PrintOut
Kế tiếp
KHÔNG XEM:
Đặt Cvw = Không có gì
Application.StatusBar = False
Ứng dụng.Màn hình cập nhật = Đúng
End Sub
'--- NLtL >> https://1drv.ms/u/s!Au8Lyt79SOuhZw2MCH7_7MuLj04?e=sAwbHU ( Các chương trình Excel miễn phí )
Trả lời:
CHÀO,
Tôi đã thử chạy macro của bạn nhưng nó chỉ lưu mỗi chế độ xem tùy chỉnh với 7 dòng đầu tiên và không có thông tin về phí. Bạn có biết tại sao không?
Cảm ơn,
Josh
Trả lời:
Chào JDeM22
Tôi đề xuất phương pháp tiếp cận sau đây.
1) Tạo một trang tính mẫu trong sổ làm việc của bạn tương tự như "Chế độ xem tùy chỉnh" mà bạn muốn xuất/gửi cho từng bác sĩ.
Bạn có thể định dạng và thêm tất cả thông tin/chi tiết cần thiết về kỳ báo cáo vào mẫu này.
2) Tạo một thư mục nơi bạn muốn lưu trữ các tệp tin.
3) Thay vì tạo nhiều tệp Excel, tôi sẽ chọn lưu chúng dưới dạng tệp PDF để gửi cho bác sĩ.
4) Đoạn mã sau sẽ lưu từng tệp báo cáo/dữ liệu riêng lẻ vào đường dẫn thư mục được chỉ định, với mẫu tên sau:
Tên bác sĩ - Báo cáo tài chính - Ngày hiện tại.pdf
Hãy thử đoạn mã sau
'''' ************************************************************************************
Sub CreateMultiplePDFsReports()
Dim myFolderPath As String
Bác sĩ mờ Phạm vi như Phạm vi
Dim dr As Range
Dim drName As String
Dim reportDate As String
Dim fullPath As String
myFolderPath = " C:\Users\Administrator\Downloads\Doctors Reports \" ''' Thay đổi đường dẫn thư mục cho phù hợp
reportDate = Format(Date, "dd-mmm-yyyy")
Ứng dụng.Màn hình cập nhật = Sai
Với Sheets("Data")
Đặt doctorsRange = .Range( "B1:F1" ) ''' Thay đổi phạm vi tên bác sĩ cho phù hợp
''' Lặp qua tất cả tên cột tiêu đề của bác sĩ.''
Đối với mỗi bác sĩ trong phạm vi bác sĩ
Điền thông tin của từng bác sĩ vào mẫu.
Với Sheets ("Mẫu")
.Range("C5").Value = Date '' Ngày hiện tại
.Range("B2").Value = dr.Value ''' Tên bác sĩ
.Range("D8").Resize(6).Value = dr.Offset(1).Resize(6).Value ''' Dữ liệu của bác sĩ
Lưu mẫu dưới dạng tệp PDF vào thư mục đã chỉ định.
drName = dr.Value
fullPath = myFolderPath & drName & "-Báo cáo tài chính-" & reportDate & ".pdf"
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fullPath, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Kết thúc bằng
Bác sĩ tiếp theo
Kết thúc bằng
Ứng dụng.Màn hình cập nhật = Đúng
MsgBox "Công việc đã hoàn thành"
End Sub
''''''****************************************************************************
GHI CHÚ:
Hãy thay đổi/điều chỉnh tên trang tính và phạm vi trong mã cho phù hợp với tình huống thực tế của bạn.
Đây là hình ảnh thư mục sau khi chạy macro từ dữ liệu mẫu mà bạn đã cung cấp.
Bạn có thể tải xuống tệp mẫu chứa lời giải này từ liên kết bên dưới.
>Hãy cho tôi biết nếu bạn cần thêm sự trợ giúp.
Trân trọng,
Jeovany
Comments
Post a Comment