Note: The other languages of the website are Google-translated. Back to English

Làm cách nào để liên kết bộ lọc Pivot Table với một ô nhất định trong Excel?

Nếu bạn muốn liên kết bộ lọc Pivot Table với một ô nhất định và làm cho Pivot Table được lọc dựa trên giá trị ô, phương pháp trong bài viết này có thể giúp bạn.

Liên kết bộ lọc Pivot Table với một ô nhất định bằng mã VBA


Liên kết bộ lọc Pivot Table với một ô nhất định bằng mã VBA

Bảng Pivot bạn sẽ liên kết chức năng bộ lọc của nó với một giá trị ô nên bao gồm một trường bộ lọc (tên của trường bộ lọc có vai trò quan trọng trong mã VBA sau).

Lấy Pivot Table dưới đây làm ví dụ, Trường bộ lọc trong Pivot Table được gọi là Phân loạivà nó bao gồm hai giá trị “Chi phí"Và"Bán hàng”. Sau khi liên kết bộ lọc Pivot Table với một ô, các giá trị ô mà bạn sẽ áp dụng để lọc Pivot Table phải là "Chi phí" và "Bán hàng".

1. Vui lòng chọn ô (ở đây tôi chọn ô H6) bạn sẽ liên kết đến chức năng lọc của Pivot Table, và nhập trước một trong các giá trị bộ lọc vào ô.

2. Mở trang tính có chứa Pivot Table mà bạn sẽ liên kết đến ô. Nhấp chuột phải vào tab trang tính và chọn Mã Chế độ xem từ menu ngữ cảnh. Xem ảnh chụp màn hình:

3. bên trong Microsoft Visual Basic cho các ứng dụng cửa sổ, sao chép mã VBA bên dưới vào cửa sổ Mã.

Mã VBA: Liên kết bộ lọc Pivot Table với một ô nhất định

Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xStr As String
    On Error Resume Next
    If Intersect(Target, Range("H6")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xPTable = Worksheets("Sheet1").PivotTables("PivotTable2")
    Set xPFile = xPTable.PivotFields("Category")
    xStr = Target.Text
    xPFile.ClearAllFilters
    xPFile.CurrentPage = xStr
    Application.ScreenUpdating = True
End Sub

Chú ý:

1) "Sheet1”Là tên của trang tính đã mở.
2) "PivotTable2”Là tên của Pivot Table mà bạn sẽ liên kết chức năng lọc của nó với một ô.
3) Trường lọc trong bảng tổng hợp được gọi là "Phân loại".
4) Ô được tham chiếu là H6. Bạn có thể thay đổi các giá trị biến này dựa trên nhu cầu của mình.

4. Nhấn nút Khác + Q chìa khóa để đóng Microsoft Visual Basic cho các ứng dụng cửa sổ.

Bây giờ, chức năng bộ lọc của Pivot Table được liên kết với ô H6.

Làm mới ô H6, sau đó dữ liệu tương ứng trong Pivot Table được lọc ra dựa trên giá trị hiện có. Xem ảnh chụp màn hình:

Khi thay đổi giá trị ô, dữ liệu đã lọc trong Bảng Pivot sẽ được thay đổi tự động. Xem ảnh chụp màn hình:


Dễ dàng chọn toàn bộ các hàng dựa trên giá trị ô trong cột chứng chỉ:

Mô hình Chọn các ô cụ thể tiện ích của Kutools cho Excel có thể giúp bạn nhanh chóng chọn toàn bộ các hàng dựa trên giá trị ô trong một cột chứng chỉ trong Excel như hình minh họa bên dưới. Sau khi chọn tất cả các hàng dựa trên giá trị ô, bạn có thể di chuyển hoặc sao chép chúng vào vị trí mới theo cách thủ công trong Excel.
Tải xuống và thử ngay bây giờ! (30-ngày đường mòn miễn phí)


Các bài liên quan:


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (36)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
làm thế nào để thực hiện điều đó trên trường mul; tiple vì trong mã chỉ có một mục tiêu
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Frank
Sory không thể giúp bạn với điều đó.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều gì sẽ xảy ra nếu ô được liên kết với Pivot Table, trong trường hợp này là H6, nằm trên một trang tính khác? Nó thay đổi mã như thế nào?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
điều gì sẽ xảy ra nếu tôi có nhiều hơn 1 bảng tổng hợp và liên kết đến 1 ô. Làm thế nào để tôi sửa đổi mã?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Jeri,
Xin lỗi không thể giúp bạn với điều đó. Chào mừng bạn đến đăng bất kỳ câu hỏi nào trong diễn đàn của chúng tôi: https://www.extendoffice.com/forum.html để được hỗ trợ nhiều hơn về Excel từ các chuyên gia Excel hoặc những người hâm mộ Excel khác.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
tìm chúng và thay đổi nó trong Array (), Intersect (), Worksheets (), PivotFields ()

PivotTable1
PivotTable2
PivotTable3
PivotTable4
H1
Tên trang tính
Tên trường




Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xPTabled As PivotTable
    Dim xPFiled As PivotField
    Dim xStr As String
    On Error Resume Next
    '리스트 만들기
    Dim listArray() As Variant
    listArray = Array("PivotTable1", "PivotTable2", "PivotTable3", "PivotTable4")
    If Intersect(Target, Range("H1")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    For i = 0 To UBound(listArray)
        Set xPTable = Worksheets("SheetName").PivotTables(listArray(i))
        Set xPFile = xPTable.PivotFields("FieldName")
        'MsgBox (listArray(i))
        xStr = Target.Text
        xPFile.ClearAllFilters
        xPFile.CurrentPage = xStr
    Next
        Application.ScreenUpdating = True
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Boa tarde ...! Ótima publicação, como surfaceo para Pracizar o filtro em duas ou mais tabelas dinâmicas ...? Agradeço desde já.

Chào buổi chiều...! Xuất bản tuyệt vời, làm cách nào để sử dụng bộ lọc trong hai hoặc nhiều PivotTable ...? Cảm ơn trước.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Gilmar Alves,
Xin lỗi không thể giúp bạn với điều đó. Chào mừng bạn đến đăng bất kỳ câu hỏi nào trong diễn đàn của chúng tôi: https://www.extendoffice.com/forum.html để được hỗ trợ nhiều hơn về Excel từ các chuyên gia Excel hoặc những người hâm mộ Excel khác.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có ai đã tìm ra câu hỏi liên kết nhiều bảng tổng hợp không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Thay đổi giá trị trong Array (), Worksheets () và Intersect ()



** Tìm những thứ này và thay đổi nó **
Tên trang tính
E1
PivotTable1
PivotTable2
PivotTable3




Private Sub Worksheet_Change (ByVal Target As Range)
'Cập nhật bởi Extendoffice 20180702
Làm mờ xPTable thành PivotTable
Làm mờ xPFile dưới dạng PivotField

Làm mờ xPTabled dưới dạng PivotTable
Làm mờ xPFiled As PivotField

Làm mờ xStr dưới dạng chuỗi



On Error Resume Next

'리스트 만들기
Dim listArray () As Variant
listArray = Array ("PivotTable1", "PivotTable2", "PivotTable3")



Nếu Intersect (Target, Range ("E1")) Không có gì thì Thoát Sub
Application.ScreenUpdating = Sai

Đối với i = 0 Đến UBound (listArray)

Đặt xPTable = Worksheets ("SheetName"). PivotTables (listArray (i))
Đặt xPFile = xPTable.PivotFields ("Company_ID")

xStr = Mục tiêu.Văn bản
xPFile.ClearAllFilters
xPFile.CienPage = xStr



Sau

Application.ScreenUpdating = True



End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Ciao, st provando a ticket lo stesso esempio per far in modo che il filtro della pivot si setti sul valore della cella,
không phải riesco a farla funzionare.

Quale passaggio manca nella descrizione sopra?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,
Bạn có nhận được bất kỳ lời nhắc lỗi nào không? Tôi cần biết cụ thể hơn về vấn đề của bạn, chẳng hạn như phiên bản Excel của bạn. Và nếu bạn không phiền, hãy thử tạo dữ liệu của bạn trong một sổ làm việc mới và thử agai, hoặc chụp ảnh màn hình dữ liệu của bạn và tải nó lên đây.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,

Đã cố gắng làm cho điều này hoạt động cho bộ lọc cột nhưng dường như không hoạt động. Tôi có cần một mã khác cho điều đó không?

Cảm ơn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Justin,
Bạn có nhận được bất kỳ lời nhắc lỗi nào không? Tôi cần biết cụ thể hơn về vấn đề của bạn.
Trước khi áp dụng mã, đừng quên sửa đổi "tên của trang tính""tên của bảng tổng hợp""tên của bộ lọc của bảng tổng hợp" và pin bạn muốn lọc bảng tổng hợp dựa trên (xem ảnh chụp phong cảnh).
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/4.png
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Crystal,

Cảm ơn bạn đã giúp đỡ. Vấn đề là chức năng không hoạt động vì một số lý do. Một số làm rõ:

Tên tổng hợp: Order_Comp_B2C
Tên trang tính: Bảng tính toán
Tên bộ lọc: Số Tuần (Tôi đã đổi tên này từ tên là "Số Tuần Công văn" trong tệp dữ liệu)
Ô cần thay đổi: O26 và O27 (ô này nên đi trong phạm vi)

Trong trục xoay này, tôi đang cố gắng thay đổi bộ lọc cho các cột, tôi không có gì trong vùng bộ lọc trong menu Trường PivotTable.

mã của tôi là:

Private Sub Worksheet_Change (ByVal Target As Range)
'Cập nhật bởi Extendoffice 20180702
Làm mờ xPTable thành PivotTable
Làm mờ xPFile dưới dạng PivotField
Làm mờ xStr dưới dạng chuỗi
On Error Resume Next
Nếu Intersect (Target, Range ("O26")) Không có gì thì Thoát Sub
Application.ScreenUpdating = Sai
Đặt xPTable = Worksheets ("Bảng tính"). PivotTables ("Order_Comp_B2C")
Đặt xPFile = xPTable.PivotFields ("Số tuần")
xStr = Mục tiêu.Văn bản
xPFile.ClearAllFilters
xPFile.CienPage = xStr
Application.ScreenUpdating = True
End Sub

Cảm ơn,

Justin
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Justin Teeuw,
Tôi đã thay đổi Tên tổng hợp, tên trang tính, tên bộ lọcô để thay đổi với các điều kiện bạn đã đề cập ở trên và thử mã VBA bạn cung cấp, nó hoạt động tốt trong trường hợp của tôi. Xem GIF sau hoặc sổ làm việc đính kèm.
Bạn có phiền tạo một sổ làm việc mới và thử lại mã không?
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/6.gif
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Crystal,

Đính kèm ảnh chụp màn hình của trục, hộp màu đỏ là bộ lọc tôi muốn thay đổi dựa trên giá trị ô.

Tốt hơn là tôi muốn sử dụng một dải ô cho biết nhiều số tuần.

Cảm ơn,

Justin
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Justin,
Xin lỗi, tôi không thấy ảnh chụp màn hình bạn đính kèm trên trang. Có thể có một số lỗi trên trang.
Nếu bạn vẫn cần giải quyết vấn đề, hãy gửi email cho tôi qua zxm@addin99.com. Xin lỗi vì sự bất tiện.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Justin Teeuw ,
Vui lòng thử mã VBA sau. Hy vọng tôi có thể giúp đỡ.

Private Sub Worksheet_Change(ByVal Target As Range)
    'Update by Extendoffice 20220706
    Dim I As Integer
    Dim xFilterStr1, xFilterStr2 As String
    On Error Resume Next
    If Intersect(Target, Range("O26:O27")) Is Nothing Then Exit Sub
    'Application.ScreenUpdating = False
    
    xFilterStr1 = Range("O26").Value
    xFilterStr2 = Range("O27").Value
    ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number"). _
        ClearAllFilters
    If xFilterStr1 = "" And xFilterStr2 = "" Then Exit Sub
    ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number"). _
        EnableMultiplePageItems = True
    xCount = ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number").PivotItems.Count

    For I = 1 To xCount
        If I <> xFilterStr1 And I <> xFilterStr2 Then
            ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number").PivotItems(I).Visible = False
        Else
            ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number").PivotItems(I).Visible = True
        End If
    Next

    'Application.ScreenUpdating = True
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đã sử dụng nó cho một máy tính xuất sắc bình thường và nó hoạt động, nhưng tôi không thể sử dụng nó cho một trang tính không hợp lệ. có lẽ tôi cần thay đổi nó một chút?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào maziaritib4 TIB!
Phương pháp này chỉ khả dụng cho Microsoft Excel. Xin lỗi vì sự bất tiện.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Justin,

Điều này đã hoạt động hoàn hảo, tuy nhiên, tôi tự hỏi liệu quy tắc này có thể được áp dụng cho nhiều PivotTable trong cùng một trang tính không?

Cảm ơn,
James
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Hi James,

Có, điều này là có thể, mã tôi đã sử dụng cho điều này là (4 trục và 2 tham chiếu ô):

Private Sub Worksheet_Change (ByVal Target As Range)
Dim I dưới dạng số nguyên
Làm mờ xFilterStr1, xFilterStr2, yFilterstr1, yfilterstr2 dưới dạng chuỗi
On Error Resume Next
If Intersect (Target, Range ("O26: P27")) Không có gì thì thoát Sub

xFilterStr1 = Phạm vi ("O26"). Giá trị
xFilterStr2 = Phạm vi ("O27"). Giá trị
yFilterstr1 = Phạm vi ("p26"). Giá trị
yfilterstr2 = Phạm vi ("p27"). Giá trị
ActiveSheet.PivotTables ("Order_Comp_B2C_Crea"). PivotFields ("Số tuần"). _
ActiveSheet.PivotTables ("Order_Comp_B2B_Crea"). PivotFields ("Số tuần"). _
ActiveSheet.PivotTables ("Order_Comp_B2C_Disp"). PivotFields ("Số tuần"). _
ActiveSheet.PivotTables ("Order_Comp_B2B_Disp"). PivotFields ("Số tuần"). _
Xóa tất cả bộ lọc

Nếu xFilterStr1 = "" Và xFilterStr2 = "" Và yFilterstr1 = "" Và yfilterstr2 = "" Thì Thoát Sub
ActiveSheet.PivotTables ("Order_Comp_B2C_Crea"). PivotFields ("Số tuần"). _
ActiveSheet.PivotTables ("Order_Comp_B2B_Crea"). PivotFields ("Số tuần"). _
ActiveSheet.PivotTables ("Order_Comp_B2C_Disp"). PivotFields ("Số tuần"). _
ActiveSheet.PivotTables ("Order_Comp_B2B_Disp"). PivotFields ("Số tuần"). _
EnableMultiplePageItems = True

xCount = ActiveSheet.PivotTables ("Order_Comp_B2C_Crea"). PivotFields ("Số tuần"). PivotItems.Count
xCount = ActiveSheet.PivotTables ("Order_Comp_B2B_Crea"). PivotFields ("Số tuần"). PivotItems.Count
yCount = ActiveSheet.PivotTables ("Order_Comp_B2C_Disp"). PivotFields ("Số tuần"). PivotItems.Count
yCount = ActiveSheet.PivotTables ("Order_Comp_B2B_Disp"). PivotFields ("Số tuần"). PivotItems.Count

Đối với I = 1 Đến xCount
Nếu tôi <> xFilterStr1 Và tôi <> xFilterStr2 Thì
ActiveSheet.PivotTables ("Order_Comp_B2C_Crea"). PivotFields ("Số tuần"). PivotItems (I) .Vosystem = False
ActiveSheet.PivotTables ("Order_Comp_B2B_Crea"). PivotFields ("Số tuần"). PivotItems (I) .Vosystem = False
Khác
ActiveSheet.PivotTables ("Order_Comp_B2C_Crea"). PivotFields ("Số tuần"). PivotItems (I) .Vosystem = True
ActiveSheet.PivotTables ("Order_Comp_B2B_Crea"). PivotFields ("Số tuần"). PivotItems (I) .Vosystem = True
Cuối Nếu
Sau

Đối với I = 1 Đến yCount
Nếu tôi <> yFilterstr1 Và tôi <> yfilterstr2 Thì
ActiveSheet.PivotTables ("Order_Comp_B2C_Disp"). PivotFields ("Số tuần"). PivotItems (I) .Vosystem = False
ActiveSheet.PivotTables ("Order_Comp_B2B_Disp"). PivotFields ("Số tuần"). PivotItems (I) .Vosystem = False
Khác
ActiveSheet.PivotTables ("Order_Comp_B2C_Disp"). PivotFields ("Số tuần"). PivotItems (I) .Vosystem = True
ActiveSheet.PivotTables ("Order_Comp_B2B_Disp"). PivotFields ("Số tuần"). PivotItems (I) .Vosystem = True
Cuối Nếu
Sau

End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Thay đổi giá trị trong Array (), Worksheets () và Intersect ()



** Tìm những thứ này và thay đổi nó **
Tên trang tính
E1
PivotTable1
PivotTable2
PivotTable3




Private Sub Worksheet_Change (ByVal Target As Range)
'Cập nhật bởi Extendoffice 20180702
Làm mờ xPTable thành PivotTable
Làm mờ xPFile dưới dạng PivotField

Làm mờ xPTabled dưới dạng PivotTable
Làm mờ xPFiled As PivotField

Làm mờ xStr dưới dạng chuỗi



On Error Resume Next

'리스트 만들기
Dim listArray () As Variant
listArray = Array ("PivotTable1", "PivotTable2", "PivotTable3")



Nếu Intersect (Target, Range ("E1")) Không có gì thì Thoát Sub
Application.ScreenUpdating = Sai

Đối với i = 0 Đến UBound (listArray)

Đặt xPTable = Worksheets ("SheetName"). PivotTables (listArray (i))
Đặt xPFile = xPTable.PivotFields ("Company_ID")

xStr = Mục tiêu.Văn bản
xPFile.ClearAllFilters
xPFile.CienPage = xStr



Sau

Application.ScreenUpdating = True



End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào bạn,

Mã hoạt động tốt cho tôi. Tuy nhiên, tôi không thể tải bảng tổng hợp để cập nhật mục tiêu bộ lọc tự động. Mục tiêu trong trường hợp của tôi là công thức [DATE (D18, S14, C18)]. Mã chỉ hoạt động khi tôi nhấp đúp vào ô mục tiêu và nhấn enter.

Cảm ơn bạn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào bạn,

Mã này hoạt động hoàn hảo. Tuy nhiên, tôi không thể nhận mã để cập nhật bảng tổng hợp tự động. Giá trị mục tiêu đối với tôi là một công thức (= DATE (D18, .., ..)) thay đổi tùy thuộc vào những gì được chọn tại D18. Để cập nhật bảng tổng hợp, tôi phải nhấp đúp vào ô mục tiêu và nhấn enter. Có một cách xung quanh nó?

Cảm ơn bạn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào ST,
Giả sử giá trị mục tiêu của bạn ở H6 và nó thay đổi tùy thuộc vào giá trị trong D18. Để lọc bảng tổng hợp dựa trên giá trị mục tiêu này. Mã VBA sau đây có thể giúp bạn. Hãy thử một lần.
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2022/07/22
Dim xPTable As PivotTable
Dim xPFile As PivotField
Dim xStr As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next

xBoolean = False
Set xRg = Range("h6")

Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
    xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
    xBoolean = True
ElseIf Not (xDs Is Nothing) Then
    xBoolean = True
End If


If Not xBoolean Then Exit Sub

Application.ScreenUpdating = False
Set xPTable = Worksheets("Sheet1").PivotTables("Pivot Table 1")
Set xPFile = xPTable.PivotFields("Category")
xStr = Target.Text
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Application.ScreenUpdating = True

End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Crysal,

Tôi đã thêm một dòng trên mã: Dim xRg As Range

Mã không tự động đặt lại ngày khi mục tiêu được thay đổi. Tôi có một tệp excel sao chép những gì tôi đang cố gắng thực hiện, tôi không thể thêm tệp đính kèm trên trang web này. D3 (target = DATE (A15, B15, C15)) có phương trình được liên kết với A15, B15 và C15. Khi bất kỳ giá trị nào trên A15, B15 và C15 được thay đổi, bảng tổng hợp sẽ đặt lại thành không có bộ lọc. Bạn có thể giúp tôi về điều này?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào ST,
Tôi không hiểu bạn muốn nói gì. Trong trường hợp của bạn, giá trị của ô đích D3 được sử dụng để lọc bảng tổng hợp. Công thức trong ô đích D3 tham chiếu đến các giá trị của ô A15, B15 và C15, các giá trị này sẽ thay đổi theo các giá trị trong ô tham chiếu. Khi bất kỳ giá trị nào trên A15, B15 và C15 được thay đổi, bảng tổng hợp sẽ được tự động lọc nếu giá trị trong ô đích đáp ứng các điều kiện lọc của bảng tổng hợp. Nếu giá trị trong ô đích không đáp ứng tiêu chí lọc của bảng tổng hợp, bảng tổng hợp sẽ tự động được đặt lại thành không lọc.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi không chắc có cách nào để chia sẻ tệp excel với bạn không. Nếu giá trị mục tiêu của tôi, là một ngày, thay đổi theo những thay đổi trong các ô khác. Tôi phải nhấp đúp vào ô đích và nhấn enter (giống như bạn làm sau khi nhập công thức vào ô) để cập nhật bảng tổng hợp
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Sagar T,
Mã đã được cập nhật. Hãy thử một lần. Cảm ơn phản hồi của bạn.
Đừng quên thay đổi tên của trang tính, bảng tổng hợp và bộ lọc trong mã. Hoặc bạn có thể tải xuống sổ làm việc đã tải lên sau để thử nghiệm.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220805
Dim xPTable As PivotTable
Dim xPFile As PivotField
Dim xStr As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next

xBoolean = False
Set xRg = Range("D3")

Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
    xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
    xBoolean = True
ElseIf Not (xDs Is Nothing) Then
    xBoolean = True
End If


If Not xBoolean Then Exit Sub
xStr = Format(xRg.Text, "m/d/yyyy")
Application.ScreenUpdating = False
Set xPTable = Worksheets("Sheet2").PivotTables("PivotTable1")
Set xPFile = xPTable.PivotFields("Date")
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Application.ScreenUpdating = True

End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
tìm chúng và thay đổi nó trong Array (), Intersect (), Worksheets (), PivotFields ()

PivotTable1
PivotTable2
PivotTable3
PivotTable4
H1
Tên trang tính
Tên trường




Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xPTabled As PivotTable
    Dim xPFiled As PivotField
    Dim xStr As String
    On Error Resume Next
    '리스트 만들기
    Dim listArray() As Variant
    listArray = Array("PivotTable1", "PivotTable2", "PivotTable3", "PivotTable4")
    If Intersect(Target, Range("H1")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    For i = 0 To UBound(listArray)
        Set xPTable = Worksheets("SheetName").PivotTables(listArray(i))
        Set xPFile = xPTable.PivotFields("FieldName")
        'MsgBox (listArray(i))
        xStr = Target.Text
        xPFile.ClearAllFilters
        xPFile.CurrentPage = xStr
    Next
        Application.ScreenUpdating = True
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Làm thế nào để bạn có thể cho phép bạn 2 lần hoặc 2 lần nữa? а не 1 как в примере?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Алексей,

Vui lòng kiểm tra xem mã VBA trong bình luận này #38754 có thể giúp đỡ.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Làm thế nào để bạn có thể sử dụng phần mềm H6 trên máy tính để bàn? bạn có muốn làm gì không? подскажите пожалуйста.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Алексей,

Bạn không cần sửa đổi mã, chỉ cần thêm mã VBA vào trang tính của ô mà bạn muốn tham chiếu.
Ví dụ: nếu bạn muốn lọc bảng tổng hợp có tên "PivotTable1"trong Sheet2 dựa trên giá trị của ô H6 in Sheet3, vui lòng nhấp chuột phải vào Sheet3 tab trang tính, bấm Mã Chế độ xem từ menu chuột phải, sau đó thêm mã vào Sheet3 (Mã) cửa sổ.
Không có bình luận nào được đăng ở đây
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL