thắc mắc Xin giúp Vba - pivot table với field có tên dài

UserZ

Senior Member
Tình hình là mình phải hốt c*t hộ một thằng hốt c*t khác :beat_shot:
Nói chung dùng vba bình thường, nhưng có vấn đề là nếu cột nào tên nó dài quá 254 ký tự thì khi set orientation cho pivot field sang xlDataField sẽ bị văng excel khi chạy. :cry:
Code:
columnField = "Một cái tên dài vãi cả lozl, hơn 254 ký tự cơ ý!!! ><"
With pivTable.PivotFields(columnField)
        .Orientation = xlDataField 'văng cmn ra ngoài :((((((
        .Position = 1       
End With
Hiện tại thì xài tạm giải pháp rename lại cái tên cột trên file excel, pivot xong đặt lại như cũ, tuy nhiên cách này chỉ thể hiện cái khôn vặt thôi! :(
Xin các cao nhân cách khắc phục :pudency:
 
Fen up hình minh hoạ và full đoạn code đc ko nhỉ.
:sweet_kiss: gửi fen code, hình thì không biết up kiểu gì, chạy đến Orientation là nó tắt phụp luôn:
Code:
    pivotSheet.Activate

    For i = 0 To ListBox1.ListCount - 1 'các field cần đếm trong pivot table lưu tại ListBox1
        ListBox1.Selected(i) = True  'đánh dấu field xử lý
        Set pTable = pCache.CreatePivotTable(pivotSheet.Cells(i * 15 + 1, 1), "pivotTbl" & i)
        columnField = ListBox1.List(i)

        pTable.AddFields RowField, columnField

        With pTable.PivotFields(columnField) 'list field có tên dài thì sập, field tên ngắn chạy ok
            .Orientation = xlDataField
            .Position = 1
        End With
        
        pTable.TableStyle2 = "PivotStyleLight22"
    Next i
    pivotSheet.Columns(1).ColumnWidth = 60
    pivotSheet.Range("A:A").WrapText = True
 
Back
Top