2011-12-30 14 views
6

मैं Excel 2010 के लिए VBA का उपयोग कर रहा है और बेतरतीब ढंग से निम्न त्रुटि प्राप्त:एक्सेल VBA रन-टाइम त्रुटि 1004

Run-time error '1004': "The sort reference is not valid. Make sure it's within the data you want to sort, and the first Sort By box isn't the same or blank."

इस कोड है

'Sort the active rows 
With ActiveWorkbook.Worksheets("Product Backlog").Sort 
    .SetRange Range("A4:F51") 
    .Header = xlYes 
    .MatchCase = False 
    .Orientation = xlTopToBottom 
    .SortMethod = xlPinYin 
    .Apply 
End With 
+1

सबसे संभावित कारण है कि आप नहीं कर रहे हैं आवश्यक वर्कशीट के भीतर। 'ActiveWorkbook' का उपयोग न करें,' शीट्स ("xxxxx") 'का उपयोग करें। –

उत्तर

4

तरह बॉक्स से खाली है, कि तुम्हारी समस्या है मैंने आपके काम की तरह सॉर्ट ऑब्जेक्ट का कभी भी उपयोग नहीं किया है, लेकिन मैं देख सकता हूं कि आपने एक कुंजी, या क्रमबद्ध करने के लिए एक श्रेणी को परिभाषित नहीं किया है, बस क्रमबद्ध करने के लिए सीमा। एक कुंजी को परिभाषित किया जाना चाहिए जैसे रेंज ("ए 4") या कुछ। मैं इस तरह के रूप में यह में ऐसा लग रहा है, यह (रेंज) .sortfields.add जाना चाहिए था,:

'Sort the active rows 

    With ActiveWorkbook.Worksheets("Product Backlog").Sort 
     .SetRange Range("A4:F51") 
     .Header = xlYes 
     .MatchCase = False 
     .Orientation = xlTopToBottom 
     .SortMethod = xlPinYin 

     .SortFields.Add Key:=Range("A4:F51").Columns(1), SortOn:=xlSortOnValues, _ 
     Order:=xlDescending, DataOption:=xlSortNormal 

     .Apply 
    End With 

मैं क्रमबद्ध फ़ंक्शन का उपयोग इस प्रकार है:

ActiveWorkbook.Worksheets("Product Backlog").Range("A4:F51").Sort _ 
    Key1:= ActiveWorkbook.Worksheets("Product Backlog").Range("A4:F51").Columns(1), _ 
    Header:= xlYes, _ 
    Orientation:=xlSortColumns, _ 
    MatchCase:=False, _ 
    SortMethod:=xlPinYin 
+0

यदि आपके पास एक से अधिक कार्यपुस्तिकाएं खुली हैं, तो वर्कबुक ("MyWorkbook") का उपयोग कर अपनी कार्यपुस्तिका को प्राप्त करना सुनिश्चित करें। सक्रिय करें, अगर आप ActiveWorkbook का उपयोग करने जा रहे हैं। – Motes

+0

यही मुझे चाहिए, धन्यवाद। बीटीडब्ल्यू, मुझे ओरिएंटेशन को जिस तरह से था, उसे वापस रखना पड़ा अन्यथा अजीब चीजें हुईं (ओरिएंटेशन = xlTopToBottom)। – Aaron

+1

हाँ क्षमा करें, xlSortColumns = xlTopToBottom, xlSortRows = xlLeftToRight। – Motes

संबंधित मुद्दे