2011-01-31 12 views
12

मैं ऑटो फिट, सीमा आदि लागू करने के लिए Excel.Range सी # के ऑब्जेक्ट में Excel शीट में सभी कक्षों का चयन करने का प्रयास कर रहा हूं। मेरे पास चादरों के भीतर कुछ विलय कोशिकाएं हैं।एक्सेल में वर्कशीट में सभी सेल्स का चयन कैसे करें। सी # की वस्तु बदलें?

क्या ऐसा करने के लिए कोई आसान चाल है?

उत्तर

8

here से लिया, इस कार्यपत्रक के सभी सेल चुनने होंगे:

lastCol = ActiveSheet.Range("a1").End(xlToRight).Column 
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row 
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select 
+0

+1: लिंक के लिए बहुत धन्यवाद – horgh

2

मैं नहीं किया है किसी भी थोड़ी देर के लिए विकास उत्कृष्टता (Excel 2003) लेकिन मैं हमेशा पाया गया कि एक मैक्रो रिकॉर्डिंग करते समय प्रदर्शन जिन कार्यों को मैं कोड में कार्यान्वित करना चाहता था, उनके पास मदद करने के लिए पर्याप्त पॉइंटर्स हैं।

Sub Macro1() 
    Cells.Select 
    Cells.EntireColumn.AutoFit 
End Sub 

जो मैं कल्पना कर सकते हैं मोटे तौर पर करने के लिए अनुवाद होगा:

इस मामले में, सभी कोशिकाओं और autofitting का चयन कोड देता है

((Microsoft.Office.Interop.Excel.Range)_sheet.Cells.Select()).AutoFit(); 

जहां _sheet वर्कशीट आप 'का उदाहरण है फिर से उपयोग कर रहे हैं। (अनचाहे)

2

आधिकारिक तौर पर, Excel.Worksheet.UsedRange.Rows और Excel.Worksheet.UsedRange.Columns।

प्रैक्टिस में, यह छोटी गाड़ी है, आपको प्रारंभ पंक्ति और कॉलम घटाना होगा। निकटतम करने के लिए सही जवाब है:

Public ReadOnly Property LastColumn() As Integer 
     Get 
      Return ExcelWorksheet.UsedRange.Columns.Count + _ 
        ExcelWorksheet.UsedRange.Column - 1 
     End Get 
    End Property 
    Public ReadOnly Property LastRow() As Integer 
     Get 
      Return ExcelWorksheet.UsedRange.Rows.Count + _ 
        ExcelWorksheet.UsedRange.Row - 1 
     End Get 
    End Property 

यह कम से कम सब इस्तेमाल कोशिकाओं, कभी कभी एक छोटे से अधिक देता है। 'थोड़ा और' खाली कोशिकाओं (खाली के बजाय), और अन्य यादृच्छिक चीजों के कारण हो सकता है। मेरे द्वारा किए गए शोध का निर्माण करें, यह सबसे अच्छा है जिसे किया जा सकता है।

तुम सच में तो सब कुछ

ExcelWorksheet.Activate() 
ExcelWorksheet.Cells.Select() 
1

अधिक स्वच्छ और पंक्तियों की संख्या/कॉलम जो Excel 2007 में बढ़ाई गई थी पर निर्भर नहीं करता चयन करने के लिए करना चाहते हैं:

परंतु अपने चादर है

wsData.Range(wsData.Cells(1, 1), wsData.Cells(wsData.Rows.Count, wsData.Columns.Count)) 
+1

मेरे लिए wsData.Rows.Count हमेशा इस्तेमाल की गई पंक्तियों के बजाय 65536 लौटाता है FYI –

10
public void refreshSheetColumsSize(Worksheet ws) 
{ 
    ws.get_Range("a1").EntireRow.EntireColumn.Select();   
} 
+1

अच्छा लगता है, लेकिन मुझे यह अपवाद मिला है 'टाइप' बूल 'को माइक्रोसॉफ्ट.ऑफिस में रूपांतरित नहीं कर सकता। Interop.Excel.Range'' – Yola

+0

get_range को एक रेंज वापस करनी चाहिए, न कि बूल: https://msdn.microsoft.com/fr-fr/library/microsoft.office.tools.excel.worksheet.get_range.aspx कॉल ws। get_Range ("A1"); एक अलग पंक्ति में और परिणाम डीबग करें। – jocelyn

+1

'चयन() 'को हटाने से यह होगा। मुझे योल के समान अपवाद मिल रहा था। मेरा मतलब है, एक विधि बनाएं जो 'रेंज' और रिटर्न 'get_Range ("a1") लौटाती है। EntireRow.EntireColumn' – Veverke

6
: एक चर बुलाया wsData में

इस उदाहरण में, CurrentSheet वेरिएबल है जहां आपने वर्तमान में उपयोग की जाने वाली शीट को संग्रहीत किया है।

0

किसी कार्यपत्रक की सभी कोशिकाओं पर विचार करने के लिए आप की तरह लिख सकते हैं:

workSheet.Cells[workSheet.Rows.Count,workSheet.Columns.Count] 

या

workSheet.get_Range("A1","IV65536") 

किसी कार्यपत्रक का इस्तेमाल कोशिकाओं पर विचार करने के लिए, आप लिख सकते हैं:

workSheet.Rows.SpecialCells(XlCellType.xlCellTypeLastCell, XlSpecialCellsValue.xlTextValues) 

जहां "वर्कशीट" उस शीट का प्रतिनिधित्व करती है जिस पर आप काम कर रहे हैं। दोनों कोड नमूना एक रेंज देता है।

उम्मीद है कि यह मदद करता है!

0

बहुत ही सरल:

xlWorkSheet.UsedRange.Columns.Select() 
0
worksheet.Columns.AutoFit() 

कहाँ "वर्कशीट" प्रकार के एक चर Worksheet

0
 xlWorksheet.get_Range("a1").EntireRow.EntireColumn.AutoFit(); 
     xlWorksheet.get_Range("a1").EntireColumn.EntireRow.AutoFit(); 

के बाद सेल भरने समाप्त कर दिया गया है।

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

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